Nuprl Lemma : int_term-induction

[P:int_term() ⟶ ℙ]
  ((∀const:ℤP["const"])
   (∀var:ℤP[vvar])
   (∀left,right:int_term().  (P[left]  P[right]  P[left (+) right]))
   (∀left,right:int_term().  (P[left]  P[right]  P[left (-) right]))
   (∀left,right:int_term().  (P[left]  P[right]  P[left (*) right]))
   (∀num:int_term(). (P[num]  P["-"num]))
   {∀v:int_term(). P[v]})


Proof




Definitions occuring in Statement :  itermMinus: "-"num itermMultiply: left (*) right itermSubtract: left (-) right itermAdd: left (+) right itermVar: vvar itermConstant: "const" int_term: int_term() uall: [x:A]. B[x] prop: guard: {T} so_apply: x[s] all: x:A. B[x] implies:  Q function: x:A ⟶ B[x] int:
Definitions unfolded in proof :  uall: [x:A]. B[x] implies:  Q guard: {T} so_lambda: λ2x.t[x] member: t ∈ T uimplies: supposing a subtype_rel: A ⊆B nat: prop: so_apply: x[s] all: x:A. B[x] le: A ≤ B and: P ∧ Q not: ¬A false: False ext-eq: A ≡ B bool: 𝔹 unit: Unit it: btrue: tt uiff: uiff(P;Q) sq_type: SQType(T) eq_atom: =a y ifthenelse: if then else fi  itermConstant: "const" int_term_size: int_term_size(p) bfalse: ff exists: x:A. B[x] or: P ∨ Q bnot: ¬bb assert: b itermVar: vvar itermAdd: left (+) right pi1: fst(t) pi2: snd(t) cand: c∧ B int_seg: {i..j-} lelt: i ≤ j < k decidable: Dec(P) iff: ⇐⇒ Q rev_implies:  Q subtract: m top: Top less_than': less_than'(a;b) true: True itermSubtract: left (-) right itermMultiply: left (*) right itermMinus: "-"num ge: i ≥  nat_plus: + less_than: a < b squash: T
Lemmas referenced :  uniform-comp-nat-induction all_wf int_term_wf isect_wf le_wf int_term_size_wf nat_wf less_than'_wf int_term-ext eq_atom_wf bool_wf eqtt_to_assert assert_of_eq_atom subtype_base_sq atom_subtype_base eqff_to_assert equal_wf bool_cases_sqequal bool_subtype_base assert-bnot neg_assert_of_eq_atom set_subtype_base int_subtype_base add-is-int-iff nat_properties subtract_wf decidable__le false_wf not-le-2 less-iff-le condition-implies-le minus-one-mul zero-add minus-one-mul-top minus-add minus-minus add-associates add-swap add-commutes add_functionality_wrt_le add-zero le-add-cancel decidable__lt not-lt-2 add-mul-special zero-mul le-add-cancel-alt lelt_wf uall_wf int_seg_wf le_reflexive itermMinus_wf itermMultiply_wf itermSubtract_wf itermAdd_wf itermVar_wf itermConstant_wf one-mul two-mul mul-distributes-right omega-shadow less_than_wf mul-distributes mul-commutes mul-associates mul-swap minus-zero
Rules used in proof :  sqequalSubstitution sqequalTransitivity computationStep sqequalReflexivity isect_memberFormation lambdaFormation cut introduction extract_by_obid sqequalHypSubstitution isectElimination thin sqequalRule lambdaEquality hypothesis hypothesisEquality applyEquality because_Cache setElimination rename functionExtensionality independent_functionElimination productElimination independent_pairEquality dependent_functionElimination voidElimination axiomEquality equalityTransitivity equalitySymmetry promote_hyp hypothesis_subsumption tokenEquality unionElimination equalityElimination independent_isectElimination instantiate cumulativity atomEquality dependent_pairFormation independent_pairFormation sqequalIntensionalEquality intEquality natural_numberEquality baseClosed baseApply closedConclusion applyLambdaEquality dependent_set_memberEquality addEquality isect_memberEquality voidEquality minusEquality functionEquality universeEquality multiplyEquality imageMemberEquality

Latex:
\mforall{}[P:int\_term()  {}\mrightarrow{}  \mBbbP{}]
    ((\mforall{}const:\mBbbZ{}.  P["const"])
    {}\mRightarrow{}  (\mforall{}var:\mBbbZ{}.  P[vvar])
    {}\mRightarrow{}  (\mforall{}left,right:int\_term().    (P[left]  {}\mRightarrow{}  P[right]  {}\mRightarrow{}  P[left  (+)  right]))
    {}\mRightarrow{}  (\mforall{}left,right:int\_term().    (P[left]  {}\mRightarrow{}  P[right]  {}\mRightarrow{}  P[left  (-)  right]))
    {}\mRightarrow{}  (\mforall{}left,right:int\_term().    (P[left]  {}\mRightarrow{}  P[right]  {}\mRightarrow{}  P[left  (*)  right]))
    {}\mRightarrow{}  (\mforall{}num:int\_term().  (P[num]  {}\mRightarrow{}  P["-"num]))
    {}\mRightarrow{}  \{\mforall{}v:int\_term().  P[v]\})



Date html generated: 2017_04_14-AM-08_57_23
Last ObjectModification: 2017_02_27-PM-03_41_26

Theory : omega


Home Index