Step
*
1
1
1
of Lemma
aa_max_ltree_spec3
.....wf..... 
1. t : rec(X.Unit + (val:
 
 left_subtree:X 
 X))
2. aa_binary_search_tree(t)@i
3. i : 
@i
4. x : Unit
5. t = (inl x )
6. (inr 
 ) = (inr 
 )
7. aa_ltree_ind(t;False;v,ltr,rtr,ltrm,rtrm.(v = i) 
 ((i < v) 
 ltrm) 
 ((v < i) 
 rtrm))
8. z : Unit + (val:
 
 left_subtree:aa_ltree(
) 
 aa_ltree(
))
 aa_ltree_ind(z;False;v,ltr,rtr,ltrm,rtrm.(v = i) 
 ((i < v) 
 ltrm) 
 ((v < i) 
 rtrm)) 
 
BY
{ (Assert 
z 
 aa_ltree(
)

   THEN Auto
   THEN skip{MaAuto would work here}
   THEN Unfold `aa_ltree` 0
   THEN MemTypeCD
   THEN Try (Fold `aa_ltree` 0)
   THEN Auto) }
.....wf..... 
1.  t  :  rec(X.Unit  +  (val:\mBbbZ{}  \mtimes{}  left$_{subtree}$:X  \mtimes{}  X))
2.  aa\_binary\_search\_tree(t)@i
3.  i  :  \mBbbZ{}@i
4.  x  :  Unit
5.  t  =  (inl  x  )
6.  (inr  \mcdot{}  )  =  (inr  \mcdot{}  )
7.  aa\_ltree\_ind(t;False;v,ltr,rtr,ltrm,rtrm.(v  =  i)  \mvee{}  ((i  <  v)  \mwedge{}  ltrm)  \mvee{}  ((v  <  i)  \mwedge{}  rtrm))
8.  z  :  Unit  +  (val:\mBbbZ{}  \mtimes{}  left$_{subtree}$:aa\_ltree(\mBbbZ{})  \mtimes{}  aa\_ltree(\mBbbZ{}))
\mvdash{}  aa\_ltree\_ind(z;False;v,ltr,rtr,ltrm,rtrm.(v  =  i)  \mvee{}  ((i  <  v)  \mwedge{}  ltrm)  \mvee{}  ((v  <  i)  \mwedge{}  rtrm))  \mmember{}  \mBbbP{}
By
(Assert  \mkleeneopen{}z  \mmember{}  aa\_ltree(\mBbbZ{})\mkleeneclose{}\mcdot{}
  THEN  Auto
  THEN  skip\{MaAuto  would  work  here\}
  THEN  Unfold  `aa\_ltree`  0
  THEN  MemTypeCD
  THEN  Try  (Fold  `aa\_ltree`  0)
  THEN  Auto)
Home
Index