Nuprl Lemma : W-measure-induction

[T,A:Type]. ∀[B:A ⟶ Type]. ∀[measure:T ⟶ W(A;a.B[a])]. ∀[P:T ⟶ ℙ].
  ((∀i:T. ((∀j:{j:T| measure[j] <  measure[i]} P[j])  P[i]))  (∀i:T. P[i]))


This theorem is one of freek's list of 100 theorems



Proof




Definitions occuring in Statement :  Wcmp: Wcmp(A;a.B[a];leq) W: W(A;a.B[a]) bfalse: ff uall: [x:A]. B[x] prop: infix_ap: y so_apply: x[s] all: x:A. B[x] implies:  Q set: {x:A| B[x]}  function: x:A ⟶ B[x] universe: Type
Definitions unfolded in proof :  uall: [x:A]. B[x] member: t ∈ T implies:  Q all: x:A. B[x] so_lambda: λ2x.t[x] prop: so_apply: x[s] subtype_rel: A ⊆B infix_ap: y uimplies: supposing a Wcmp: Wcmp(A;a.B[a];leq) Wsup: Wsup(a;b) ifthenelse: if then else fi  bfalse: ff exists: x:A. B[x] guard: {T} and: P ∧ Q nat: pcw-pp-barred: Barred(pp) int_seg: {i..j-} lelt: i ≤ j < k decidable: Dec(P) or: P ∨ Q iff: ⇐⇒ Q not: ¬A rev_implies:  Q false: False uiff: uiff(P;Q) subtract: m top: Top le: A ≤ B less_than': less_than'(a;b) true: True cw-step: cw-step(A;a.B[a]) pcw-step: pcw-step(P;p.A[p];p,a.B[p; a];p,a,b.C[p; a; b]) spreadn: spread3 less_than: a < b squash: T isr: isr(x) assert: b btrue: tt ext-eq: A ≡ B unit: Unit it: so_lambda: λ2y.t[x; y] so_apply: x[s1;s2] so_lambda: so_lambda(x,y,z.t[x; y; z]) so_apply: x[s1;s2;s3] ext-family: F ≡ G pi1: fst(t) nat_plus: + W-rel: W-rel(A;a.B[a];w) param-W-rel: param-W-rel(P;p.A[p];p,a.B[p; a];p,a,b.C[p; a; b];par;w) pcw-steprel: StepRel(s1;s2) pi2: snd(t) isl: isl(x) pcw-step-agree: StepAgree(s;p1;w) cand: c∧ B sq_type: SQType(T) sq_stable: SqStable(P)
Lemmas referenced :  all_wf infix_ap_wf W_wf Wcmp_wf bfalse_wf Wleq_weakening2 Wsup_wf btrue_wf W-elimination-facts int_seg_wf subtract_wf decidable__le false_wf not-le-2 less-iff-le condition-implies-le minus-one-mul zero-add minus-one-mul-top nat_wf 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 top_wf less_than_wf true_wf equal_wf add-subtract-cancel W-ext param-co-W-ext unit_wf2 it_wf param-co-W_wf ext-eq_inversion subtype_rel_weakening assert_wf pcw-steprel_wf subtype_rel_dep_function subtype_base_sq set_subtype_base le_wf int_subtype_base decidable__int_equal not-equal-2 minus-zero le-add-cancel2 int_seg_subtype sq_stable__le Wcmp_transitivity
Rules used in proof :  sqequalSubstitution sqequalTransitivity computationStep sqequalReflexivity isect_memberFormation introduction lambdaEquality sqequalRule cut hypothesisEquality extract_by_obid sqequalHypSubstitution isectElimination thin cumulativity functionEquality setEquality because_Cache instantiate applyEquality functionExtensionality hypothesis universeEquality lambdaFormation setElimination rename dependent_functionElimination independent_functionElimination independent_isectElimination productElimination strong_bar_Induction equalityTransitivity equalitySymmetry natural_numberEquality dependent_set_memberEquality independent_pairFormation unionElimination voidElimination addEquality isect_memberEquality voidEquality minusEquality intEquality lessCases sqequalAxiom imageMemberEquality baseClosed imageElimination axiomEquality int_eqReduceTrueSq promote_hyp hypothesis_subsumption equalityElimination dependent_pairEquality productEquality inlEquality unionEquality hyp_replacement applyLambdaEquality

Latex:
\mforall{}[T,A:Type].  \mforall{}[B:A  {}\mrightarrow{}  Type].  \mforall{}[measure:T  {}\mrightarrow{}  W(A;a.B[a])].  \mforall{}[P:T  {}\mrightarrow{}  \mBbbP{}].
    ((\mforall{}i:T.  ((\mforall{}j:\{j:T|  measure[j]  <    measure[i]\}  .  P[j])  {}\mRightarrow{}  P[i]))  {}\mRightarrow{}  (\mforall{}i:T.  P[i]))



Date html generated: 2017_04_14-AM-07_44_03
Last ObjectModification: 2017_02_27-PM-03_15_25

Theory : co-recursion


Home Index