Nuprl Lemma : binary-tree_ind_wf

∀[A:Type]. ∀[R:A ⟶ binary-tree() ⟶ ℙ]. ∀[v:binary-tree()]. ∀[Leaf:val:ℤ ⟶ {x:A| R[x;btr_Leaf(val)]} ].
∀[Node:left:binary-tree()
       ⟶ right:binary-tree()
       ⟶ {x:A| R[x;left]} 
       ⟶ {x:A| R[x;right]} 
       ⟶ {x:A| R[x;btr_Node(left;right)]} ].
  (binary-tree_ind(v;
                   btr_Leaf(val)⇒ Leaf[val];
                   btr_Node(left,right)⇒ rec1,rec2.Node[left;right;rec1;rec2])  ∈ {x:A| R[x;v]} )


Proof




Definitions occuring in Statement :  binary-tree_ind: binary-tree_ind,  btr_Node: btr_Node(left;right),  btr_Leaf: btr_Leaf(val),  binary-tree: binary-tree(),  uall: ∀[x:A]. B[x],  prop: ℙ,  so_apply: x[s1;s2;s3;s4],  so_apply: x[s1;s2],  so_apply: x[s],  member: t ∈ T,  set: {x:A| B[x]} ,  function: x:A ⟶ B[x],  int: ℤ,  universe: Type
Definitions unfolded in proof :  uall: ∀[x:A]. B[x],  member: t ∈ T,  binary-tree_ind: binary-tree_ind,  so_apply: x[s1;s2;s3;s4],  so_apply: x[s],  so_apply: x[s1;s2],  binary-tree-definition,  binary-tree-induction,  uniform-comp-nat-induction,  binary-tree-ext,  eq_atom: x =a y,  bool_cases_sqequal,  eqff_to_assert,  any: any x,  btrue: tt,  bfalse: ff,  it: ⋅,  top: Top,  all: ∀x:A. B[x],  implies: P ⇒ Q,  has-value: (a)↓,  so_lambda: so_lambda(x,y,z,w.t[x; y; z; w]),  so_lambda: λ2x.t[x],  uimplies: b supposing a,  strict4: strict4(F),  and: P ∧ Q,  prop: ℙ,  guard: {T},  or: P ∨ Q,  squash: ↓T,  subtype_rel: A ⊆r B
Lemmas referenced :  binary-tree-definition,  binary-tree-induction,  uniform-comp-nat-induction,  binary-tree-ext,  bool_cases_sqequal,  eqff_to_assert,  set_wf,  all_wf,  guard_wf,  btr_Node_wf,  btr_Leaf_wf,  binary-tree_wf,  base_wf,  lifting-strict-atom_eq,  is-exception_wf,  has-value_wf_base,  top_wf
Rules used in proof :  sqequalSubstitution,  sqequalTransitivity,  computationStep,  sqequalReflexivity,  isect_memberFormation,  introduction,  cut,  sqequalRule,  isect_memberEquality,  voidElimination,  voidEquality,  thin,  lemma_by_obid,  hypothesis,  lambdaFormation,  because_Cache,  sqequalSqle,  divergentSqle,  callbyvalueDecide,  sqequalHypSubstitution,  unionEquality,  unionElimination,  sqleReflexivity,  equalityEquality,  equalityTransitivity,  equalitySymmetry,  hypothesisEquality,  dependent_functionElimination,  independent_functionElimination,  decideExceptionCases,  axiomSqleEquality,  exceptionSqequal,  baseApply,  closedConclusion,  baseClosed,  isectElimination,  independent_isectElimination,  independent_pairFormation,  inrFormation,  imageMemberEquality,  imageElimination,  inlFormation,  instantiate,  extract_by_obid,  applyEquality,  lambdaEquality,  isectEquality,  functionEquality,  cumulativity,  universeEquality,  intEquality,  setEquality,  setElimination,  rename,  dependent_set_memberEquality,  axiomEquality

Latex:
\mforall{}[A:Type].  \mforall{}[R:A  {}\mrightarrow{}  binary-tree()  {}\mrightarrow{}  \mBbbP{}].  \mforall{}[v:binary-tree()].  \mforall{}[Leaf:val:\mBbbZ{}  {}\mrightarrow{}  \{x:A| 
                                                                                                                                                            R[x;btr\_Leaf(val)]\}  ].
\mforall{}[Node:left:binary-tree()
              {}\mrightarrow{}  right:binary-tree()
              {}\mrightarrow{}  \{x:A|  R[x;left]\} 
              {}\mrightarrow{}  \{x:A|  R[x;right]\} 
              {}\mrightarrow{}  \{x:A|  R[x;btr\_Node(left;right)]\}  ].
    (binary-tree\_ind(v;
                                      btr\_Leaf(val){}\mRightarrow{}  Leaf[val];
                                      btr\_Node(left,right){}\mRightarrow{}  rec1,rec2.Node[left;right;rec1;rec2])    \mmember{}  \{x:A|  R[x;v]\}  )



Date html generated: 2016_05_16-AM-09_07_18
Last ObjectModification: 2016_01_17-AM-09_42_45

Theory : C-semantics


Home Index