Nuprl Lemma : rat_term-induction

[P:rat_term() ⟶ ℙ]
  ((∀const:ℤP["const"])
   (∀var:ℤP[rtermVar(var)])
   (∀left,right:rat_term().  (P[left]  P[right]  P[left "+" right]))
   (∀left,right:rat_term().  (P[left]  P[right]  P[left "-" right]))
   (∀left,right:rat_term().  (P[left]  P[right]  P[left "*" right]))
   (∀num,denom:rat_term().  (P[num]  P[denom]  P[num "/" denom]))
   (∀num:rat_term(). (P[num]  P[rtermMinus(num)]))
   {∀v:rat_term(). P[v]})


Proof




Definitions occuring in Statement :  rtermMinus: rtermMinus(num) rtermDivide: num "/" denom rtermMultiply: left "*" right rtermSubtract: left "-" right rtermAdd: left "+" right rtermVar: rtermVar(var) rtermConstant: "const" rat_term: rat_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 prop: all: x:A. B[x] uimplies: supposing a subtype_rel: A ⊆B nat: so_apply: x[s] le: A ≤ B and: P ∧ Q 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  rtermConstant: "const" rat_term_size: rat_term_size(p) bfalse: ff exists: x:A. B[x] or: P ∨ Q bnot: ¬bb assert: b false: False rtermVar: rtermVar(var) rtermAdd: left "+" right pi1: fst(t) pi2: snd(t) cand: c∧ B ge: i ≥  decidable: Dec(P) not: ¬A satisfiable_int_formula: satisfiable_int_formula(fmla) top: Top int_seg: {i..j-} lelt: i ≤ j < k less_than: a < b squash: T rtermSubtract: left "-" right rtermMultiply: left "*" right rtermDivide: num "/" denom rtermMinus: rtermMinus(num)
Lemmas referenced :  uniform-comp-nat-induction rat_term_wf le_wf rat_term_size_wf istype-nat le_witness_for_triv rat_term-ext eq_atom_wf eqtt_to_assert assert_of_eq_atom subtype_base_sq atom_subtype_base eqff_to_assert bool_cases_sqequal bool_wf bool_subtype_base assert-bnot neg_assert_of_eq_atom nat_properties decidable__lt full-omega-unsat intformand_wf intformnot_wf intformless_wf itermConstant_wf itermVar_wf intformle_wf itermAdd_wf istype-int int_formula_prop_and_lemma istype-void int_formula_prop_not_lemma int_formula_prop_less_lemma int_term_value_constant_lemma int_term_value_var_lemma int_formula_prop_le_lemma int_term_value_add_lemma int_formula_prop_wf subtract_wf decidable__le itermSubtract_wf int_term_value_subtract_lemma istype-le istype-less_than int_seg_wf rtermMinus_wf rtermDivide_wf rtermMultiply_wf rtermSubtract_wf rtermAdd_wf rtermVar_wf rtermConstant_wf subtype_rel_self
Rules used in proof :  sqequalSubstitution sqequalTransitivity computationStep sqequalReflexivity isect_memberFormation_alt lambdaFormation_alt cut introduction extract_by_obid sqequalHypSubstitution isectElimination thin sqequalRule lambdaEquality_alt functionEquality hypothesis isectEquality hypothesisEquality applyEquality because_Cache setElimination rename independent_functionElimination productElimination equalityTransitivity equalitySymmetry independent_isectElimination promote_hyp hypothesis_subsumption tokenEquality inhabitedIsType unionElimination equalityElimination instantiate cumulativity atomEquality dependent_functionElimination dependent_pairFormation_alt equalityIstype voidElimination independent_pairFormation applyLambdaEquality natural_numberEquality approximateComputation int_eqEquality isect_memberEquality_alt universeIsType dependent_set_memberEquality_alt productIsType imageElimination isectIsType functionIsType universeEquality

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



Date html generated: 2019_10_29-AM-09_30_46
Last ObjectModification: 2019_03_31-PM-05_21_32

Theory : reals


Home Index