Nuprl Lemma : bs_tree_ind_wf
∀[E,A:Type]. ∀[R:A ⟶ bs_tree(E) ⟶ ℙ]. ∀[v:bs_tree(E)]. ∀[null:{x:A| R[x;bst_null()]} ].
∀[leaf:value:E ⟶ {x:A| R[x;bst_leaf(value)]} ]. ∀[node:left:bs_tree(E)
⟶ value:E
⟶ right:bs_tree(E)
⟶ {x:A| R[x;left]}
⟶ {x:A| R[x;right]}
⟶ {x:A| R[x;bst_node(left;value;right)]} ].
(case(v)
null=>null
leaf(value)=>leaf[value]
node(left,value,right)=>rec1,rec2.node[left;value;right;rec1;rec2] ∈ {x:A| R[x;v]} )
Proof
Definitions occuring in Statement :
bs_tree_ind: bs_tree_ind,
bst_node: bst_node(left;value;right)
,
bst_leaf: bst_leaf(value)
,
bst_null: bst_null()
,
bs_tree: bs_tree(E)
,
uall: ∀[x:A]. B[x]
,
prop: ℙ
,
so_apply: x[s1;s2;s3;s4;s5]
,
so_apply: x[s1;s2]
,
so_apply: x[s]
,
member: t ∈ T
,
set: {x:A| B[x]}
,
function: x:A ⟶ B[x]
,
universe: Type
Definitions unfolded in proof :
uall: ∀[x:A]. B[x]
,
member: t ∈ T
,
bs_tree_ind: bs_tree_ind,
so_apply: x[s1;s2;s3;s4;s5]
,
so_apply: x[s]
,
so_apply: x[s1;s2]
,
bs_tree-definition,
bs_tree-induction,
uniform-comp-nat-induction,
bs_tree-ext,
eq_atom: x =a y
,
btrue: tt
,
it: ⋅
,
bfalse: ff
,
bool_cases_sqequal,
eqff_to_assert,
any: any x
,
all: ∀x:A. B[x]
,
implies: P
⇒ Q
,
has-value: (a)↓
,
so_lambda: so_lambda4,
so_apply: x[s1;s2;s3;s4]
,
so_lambda: λ2x.t[x]
,
uimplies: b supposing a
,
subtype_rel: A ⊆r B
,
prop: ℙ
,
guard: {T}
Lemmas referenced :
bs_tree-definition,
has-value_wf_base,
is-exception_wf,
lifting-strict-atom_eq,
strict4-decide,
bs_tree_wf,
bst_null_wf,
bst_leaf_wf,
bst_node_wf,
subtype_rel_function,
subtype_rel_self,
istype-universe,
bs_tree-induction,
uniform-comp-nat-induction,
bs_tree-ext,
bool_cases_sqequal,
eqff_to_assert
Rules used in proof :
sqequalSubstitution,
sqequalTransitivity,
computationStep,
sqequalReflexivity,
isect_memberFormation_alt,
cut,
sqequalRule,
Error :memTop,
inhabitedIsType,
hypothesis,
lambdaFormation_alt,
thin,
sqequalSqle,
divergentSqle,
callbyvalueDecide,
sqequalHypSubstitution,
hypothesisEquality,
unionElimination,
sqleReflexivity,
equalityIstype,
equalityTransitivity,
equalitySymmetry,
dependent_functionElimination,
independent_functionElimination,
introduction,
decideExceptionCases,
axiomSqleEquality,
exceptionSqequal,
baseApply,
closedConclusion,
baseClosed,
extract_by_obid,
isectElimination,
independent_isectElimination,
lambdaEquality_alt,
isectIsType,
because_Cache,
functionIsType,
universeIsType,
universeEquality,
setIsType,
applyEquality,
functionEquality,
setEquality,
instantiate,
functionExtensionality
Latex:
\mforall{}[E,A:Type]. \mforall{}[R:A {}\mrightarrow{} bs\_tree(E) {}\mrightarrow{} \mBbbP{}]. \mforall{}[v:bs\_tree(E)]. \mforall{}[null:\{x:A| R[x;bst\_null()]\} ].
\mforall{}[leaf:value:E {}\mrightarrow{} \{x:A| R[x;bst\_leaf(value)]\} ]. \mforall{}[node:left:bs\_tree(E)
{}\mrightarrow{} value:E
{}\mrightarrow{} right:bs\_tree(E)
{}\mrightarrow{} \{x:A| R[x;left]\}
{}\mrightarrow{} \{x:A| R[x;right]\}
{}\mrightarrow{} \{x:A| R[x;bst\_node(left;value;right)]\} ].
(case(v)
null=>null
leaf(value)=>leaf[value]
node(left,value,right)=>rec1,rec2.node[left;value;right;rec1;rec2] \mmember{} \{x:A| R[x;v]\} )
Date html generated:
2020_05_20-AM-07_48_04
Last ObjectModification:
2020_02_03-PM-02_57_24
Theory : tree_1
Home
Index