### Nuprl Lemma : iterated-rotate

`∀[n,i:ℕ].  rot(n)^i = (λx.if x + i <z n then x + i else (x + i) - n fi ) ∈ (ℕn ⟶ ℕn) supposing i ≤ n`

Proof

Definitions occuring in Statement :  rotate: `rot(n)` fun_exp: `f^n` int_seg: `{i..j-}` nat: `ℕ` ifthenelse: `if b then t else f fi ` lt_int: `i <z j` uimplies: `b supposing a` uall: `∀[x:A]. B[x]` le: `A ≤ B` lambda: `λx.A[x]` function: `x:A ⟶ B[x]` subtract: `n - m` add: `n + m` natural_number: `\$n` equal: `s = t ∈ T`
Definitions unfolded in proof :  uall: `∀[x:A]. B[x]` member: `t ∈ T` nat: `ℕ` implies: `P `` Q` false: `False` ge: `i ≥ j ` uimplies: `b supposing a` not: `¬A` satisfiable_int_formula: `satisfiable_int_formula(fmla)` exists: `∃x:A. B[x]` all: `∀x:A. B[x]` top: `Top` and: `P ∧ Q` prop: `ℙ` int_seg: `{i..j-}` bool: `𝔹` unit: `Unit` it: `⋅` btrue: `tt` uiff: `uiff(P;Q)` ifthenelse: `if b then t else f fi ` guard: `{T}` lelt: `i ≤ j < k` decidable: `Dec(P)` or: `P ∨ Q` bfalse: `ff` sq_type: `SQType(T)` bnot: `¬bb` assert: `↑b` rev_implies: `P `` Q` iff: `P `⇐⇒` Q` fun_exp: `f^n` subtype_rel: `A ⊆r B` compose: `f o g` rotate: `rot(n)` nequal: `a ≠ b ∈ T ` le: `A ≤ B` less_than': `less_than'(a;b)`
Lemmas referenced :  nat_properties full-omega-unsat intformand_wf intformle_wf itermConstant_wf itermVar_wf intformless_wf istype-int int_formula_prop_and_lemma istype-void int_formula_prop_le_lemma int_term_value_constant_lemma int_term_value_var_lemma int_formula_prop_less_lemma int_formula_prop_wf ge_wf less_than_wf le_wf fun_exp0_lemma lt_int_wf eqtt_to_assert assert_of_lt_int int_seg_properties decidable__equal_int intformnot_wf intformeq_wf itermAdd_wf int_formula_prop_not_lemma int_formula_prop_eq_lemma int_term_value_add_lemma decidable__le decidable__lt lelt_wf eqff_to_assert bool_cases_sqequal subtype_base_sq bool_wf bool_subtype_base assert-bnot iff_weakening_uiff assert_wf subtract_wf int_seg_wf subtract-1-ge-0 nat_wf itermSubtract_wf int_term_value_subtract_lemma primrec-unroll equal-wf-base int_subtype_base ifthenelse_wf le_int_wf bnot_wf eq_int_wf assert_of_eq_int neg_assert_of_eq_int equal-wf-T-base equal_wf add-member-int_seg2 uiff_transitivity assert_functionality_wrt_uiff bnot_of_lt_int assert_of_le_int
Rules used in proof :  sqequalSubstitution sqequalTransitivity computationStep sqequalReflexivity Error :isect_memberFormation_alt,  introduction cut extract_by_obid sqequalHypSubstitution isectElimination thin hypothesisEquality hypothesis setElimination rename intWeakElimination Error :lambdaFormation_alt,  natural_numberEquality independent_isectElimination approximateComputation independent_functionElimination Error :dependent_pairFormation_alt,  Error :lambdaEquality_alt,  int_eqEquality dependent_functionElimination Error :isect_memberEquality_alt,  voidElimination sqequalRule independent_pairFormation Error :universeIsType,  axiomEquality equalityTransitivity equalitySymmetry Error :functionIsTypeImplies,  Error :inhabitedIsType,  Error :functionExtensionality_alt,  addEquality unionElimination equalityElimination because_Cache productElimination Error :dependent_set_memberEquality_alt,  Error :equalityIsType1,  promote_hyp instantiate cumulativity baseApply closedConclusion baseClosed applyEquality intEquality hyp_replacement applyLambdaEquality functionExtensionality

Latex:
\mforall{}[n,i:\mBbbN{}].    rot(n)\^{}i  =  (\mlambda{}x.if  x  +  i  <z  n  then  x  +  i  else  (x  +  i)  -  n  fi  )  supposing  i  \mleq{}  n

Date html generated: 2019_06_20-PM-01_35_33
Last ObjectModification: 2018_10_03-PM-11_00_52

Theory : list_1

Home Index