Nuprl Lemma : bound-term-induction

[opr:Type]. ∀[P:bound-term(opr) ⟶ ℙ].
  ((∀vs:varname() List. ∀v:varname().  ((¬(v nullvar() ∈ varname()))  P[<vs, varterm(v)>]))
   (∀bts:bound-term(opr) List
        ((∀bt:bound-term(opr). ((bt ∈ bts)  P[bt]))  (∀f:opr. ∀vs:varname() List.  P[<vs, mkterm(f;bts)>])))
   (∀bt:bound-term(opr). P[bt]))


Proof




Definitions occuring in Statement :  bound-term: bound-term(opr) mkterm: mkterm(opr;bts) varterm: varterm(v) nullvar: nullvar() varname: varname() l_member: (x ∈ l) list: List uall: [x:A]. B[x] prop: so_apply: x[s] all: x:A. B[x] not: ¬A implies:  Q function: x:A ⟶ B[x] pair: <a, b> universe: Type equal: t ∈ T
Definitions unfolded in proof :  uall: [x:A]. B[x] implies:  Q all: x:A. B[x] member: t ∈ T prop: so_apply: x[s] subtype_rel: A ⊆B bound-term: bound-term(opr) not: ¬A false: False uimplies: supposing a int_seg: {i..j-} lelt: i ≤ j < k and: P ∧ Q le: A ≤ B satisfiable_int_formula: satisfiable_int_formula(fmla) exists: x:A. B[x] decidable: Dec(P) or: P ∨ Q so_lambda: λ2x.t[x] guard: {T} sq_type: SQType(T) nat: iff: ⇐⇒ Q rev_implies:  Q bound-term-size: bound-term-size(bt) pi2: snd(t) ge: i ≥  l_member: (x ∈ l) cand: c∧ B true: True squash: T less_than: a < b less_than': less_than'(a;b)
Lemmas referenced :  bound-term_wf list_wf l_member_wf subtype_rel_self varname_wf mkterm_wf nullvar_wf istype-void varterm_wf istype-universe int_seg_properties full-omega-unsat intformand_wf intformless_wf itermVar_wf itermConstant_wf intformle_wf istype-int int_formula_prop_and_lemma int_formula_prop_less_lemma int_term_value_var_lemma int_term_value_constant_lemma int_formula_prop_le_lemma int_formula_prop_wf int_seg_wf decidable__equal_int subtract_wf subtype_base_sq set_subtype_base lelt_wf int_subtype_base intformnot_wf intformeq_wf itermSubtract_wf int_formula_prop_not_lemma int_formula_prop_eq_lemma int_term_value_subtract_lemma decidable__le decidable__lt istype-le istype-less_than term-cases iff_weakening_equal term-size_wf le_wf bound-term-size_wf primrec-wf2 nat_properties itermAdd_wf int_term_value_add_lemma istype-nat subtype_rel_list less_than_wf select_wf squash_wf true_wf easy-member-int_seg
Rules used in proof :  sqequalSubstitution sqequalTransitivity computationStep sqequalReflexivity isect_memberFormation_alt lambdaFormation_alt universeIsType cut introduction extract_by_obid sqequalHypSubstitution isectElimination thin hypothesisEquality hypothesis sqequalRule functionIsType applyEquality instantiate universeEquality independent_pairEquality because_Cache equalityIstype independent_isectElimination setElimination rename productElimination natural_numberEquality approximateComputation independent_functionElimination dependent_pairFormation_alt lambdaEquality_alt int_eqEquality dependent_functionElimination Error :memTop,  independent_pairFormation voidElimination unionElimination cumulativity intEquality inhabitedIsType equalityTransitivity equalitySymmetry applyLambdaEquality dependent_set_memberEquality_alt productIsType promote_hyp hypothesis_subsumption functionEquality setIsType addEquality setEquality imageElimination imageMemberEquality baseClosed closedConclusion

Latex:
\mforall{}[opr:Type].  \mforall{}[P:bound-term(opr)  {}\mrightarrow{}  \mBbbP{}].
    ((\mforall{}vs:varname()  List.  \mforall{}v:varname().    ((\mneg{}(v  =  nullvar()))  {}\mRightarrow{}  P[<vs,  varterm(v)>]))
    {}\mRightarrow{}  (\mforall{}bts:bound-term(opr)  List
                ((\mforall{}bt:bound-term(opr).  ((bt  \mmember{}  bts)  {}\mRightarrow{}  P[bt]))
                {}\mRightarrow{}  (\mforall{}f:opr.  \mforall{}vs:varname()  List.    P[<vs,  mkterm(f;bts)>])))
    {}\mRightarrow{}  (\mforall{}bt:bound-term(opr).  P[bt]))



Date html generated: 2020_05_19-PM-09_54_22
Last ObjectModification: 2020_03_09-PM-04_08_32

Theory : terms


Home Index