Nuprl Lemma : primrec-wf-upper

∀[k:ℤ]. ∀[P:{k...} ⟶ ℙ]. ∀[b:P[k]]. ∀[s:∀n:{k...}. (P[n] ⇒ P[n + 1])]. ∀[n:{k...}].
  (primrec(n - k;b;λi,x. (s (i + k) x)) ∈ P[n])


Proof




Definitions occuring in Statement :  primrec: primrec(n;b;c),  int_upper: {i...},  uall: ∀[x:A]. B[x],  prop: ℙ,  so_apply: x[s],  all: ∀x:A. B[x],  implies: P ⇒ Q,  member: t ∈ T,  apply: f a,  lambda: λx.A[x],  function: x:A ⟶ B[x],  subtract: n - m,  add: n + m,  natural_number: $n,  int: ℤ
Definitions unfolded in proof :  nat: ℕ,  ge: i ≥ j ,  cand: A c∧ B,  less_than: a < b,  guard: {T},  bool: 𝔹,  unit: Unit,  it: ⋅,  btrue: tt,  ifthenelse: if b then t else f fi ,  sq_type: SQType(T),  bfalse: ff,  exists: ∃x:A. B[x],  bnot: ¬bb,  assert: ↑b,  nat_plus: ℕ+,  uall: ∀[x:A]. B[x],  member: t ∈ T,  all: ∀x:A. B[x],  implies: P ⇒ Q,  so_apply: x[s],  subtype_rel: A ⊆r B,  int_upper: {i...},  decidable: Dec(P),  or: P ∨ Q,  iff: P ⇐⇒ Q,  and: P ∧ Q,  not: ¬A,  rev_implies: P ⇐ Q,  false: False,  uiff: uiff(P;Q),  uimplies: b supposing a,  sq_stable: SqStable(P),  squash: ↓T,  subtract: n - m,  top: Top,  le: A ≤ B,  less_than': less_than'(a;b),  true: True,  prop: ℙ
Lemmas referenced :  subtract_nat_wf,  minus-minus,  decidable__lt,  nat_properties,  less_than_transitivity1,  less_than_irreflexivity,  ge_wf,  istype-less_than,  primrec-unroll,  lt_int_wf,  eqtt_to_assert,  assert_of_lt_int,  subtype_base_sq,  int_subtype_base,  add-zero,  eqff_to_assert,  bool_cases_sqequal,  bool_wf,  bool_subtype_base,  iff_transitivity,  assert_wf,  bnot_wf,  not_wf,  less_than_wf,  iff_weakening_uiff,  assert_of_bnot,  istype-assert,  int_upper_wf,  not-lt-2,  subtract-1-ge-0,  subtype_rel-equal,  less-iff-le,  le-add-cancel2,  subtract_wf,  subtype_rel_function,  le_weakening2,  zero-add,  subtype_rel_self,  add-is-int-iff,  one-mul,  add-mul-special,  two-mul,  mul-distributes-right,  zero-mul,  omega-shadow,  istype-nat,  decidable__le,  istype-false,  not-le-2,  sq_stable__le,  condition-implies-le,  minus-add,  istype-void,  minus-one-mul,  add-swap,  minus-one-mul-top,  add-associates,  add-commutes,  add_functionality_wrt_le,  le-add-cancel,  istype-le,  le_reflexive,  istype-int_upper,  istype-int
Rules used in proof :  intWeakElimination,  Error :lambdaEquality_alt,  Error :functionIsTypeImplies,  equalityElimination,  instantiate,  cumulativity,  intEquality,  Error :dependent_pairFormation_alt,  Error :equalityIstype,  promote_hyp,  functionExtensionality,  baseApply,  closedConclusion,  multiplyEquality,  sqequalSubstitution,  sqequalTransitivity,  computationStep,  sqequalReflexivity,  Error :isect_memberFormation_alt,  introduction,  cut,  sqequalRule,  sqequalHypSubstitution,  axiomEquality,  equalityTransitivity,  hypothesis,  equalitySymmetry,  because_Cache,  Error :isect_memberEquality_alt,  isectElimination,  thin,  hypothesisEquality,  Error :isectIsTypeImplies,  Error :inhabitedIsType,  Error :functionIsType,  Error :universeIsType,  applyEquality,  Error :dependent_set_memberEquality_alt,  addEquality,  setElimination,  rename,  natural_numberEquality,  extract_by_obid,  dependent_functionElimination,  unionElimination,  independent_pairFormation,  Error :lambdaFormation_alt,  voidElimination,  productElimination,  independent_functionElimination,  independent_isectElimination,  imageMemberEquality,  baseClosed,  imageElimination,  minusEquality,  universeEquality

Latex:
\mforall{}[k:\mBbbZ{}].  \mforall{}[P:\{k...\}  {}\mrightarrow{}  \mBbbP{}].  \mforall{}[b:P[k]].  \mforall{}[s:\mforall{}n:\{k...\}.  (P[n]  {}\mRightarrow{}  P[n  +  1])].  \mforall{}[n:\{k...\}].
    (primrec(n  -  k;b;\mlambda{}i,x.  (s  (i  +  k)  x))  \mmember{}  P[n])



Date html generated: 2019_06_20-PM-01_04_41
Last ObjectModification: 2019_06_20-PM-01_01_23

Theory : call!by!value_2


Home Index