Step
*
1
1
of Lemma
ml-insert-int-sq
1. u : ℤ
2. v : ℤ List
3. ∀[x:ℤ]
     (let y ⟵ v
      in let y ⟵ x
         in fix((λinsert_int,x,l. if null(l)
                                 then [x]
                                 else let a,as = l 
                                      in if x <z a + 1
                                         then [x / l]
                                         else [a / let y ⟵ as in let y ⟵ x in insert_int y y]
                                         fi 
                                 fi )) 
            y 
         y ~ insert-int(x;v))
4. [x] : ℤ
5. let y ⟵ v
   in fix((λinsert_int,x,l. if null(l)
                           then [x]
                           else let a,as = l 
                                in if x <z a + 1 then [x / l] else [a / let y ⟵ as in let y ⟵ x in insert_int y y] fi 
                           fi )) 
      x 
      y ~ insert-int(x;v)
⊢ if x <z u + 1 then [x; [u / v]] else [u / insert-int(x;v)] fi  ~ if (u) < (x)
                                                                      then [u / insert-int(x;v)]
                                                                      else [x; [u / v]]
BY
{ (UseWitness ⌜Ax⌝⋅
   THEN MemCD
   THEN (Decide ⌜u < x⌝⋅ THENA Auto)
   THEN (Reduce 0 THENA Auto)
   THEN (Decide ⌜x < u + 1⌝⋅ THENA Auto)
   THEN Reduce 0
   THEN Auto) }
Latex:
Latex:
1.  u  :  \mBbbZ{}
2.  v  :  \mBbbZ{}  List
3.  \mforall{}[x:\mBbbZ{}]
          (let  y  \mleftarrow{}{}  v
            in  let  y  \mleftarrow{}{}  x
                  in  fix((\mlambda{}insert$_{int}$,x,l.  if  null(l)
                                                                then  [x]
                                                                else  let  a,as  =  l 
                                                                          in  if  x  <z  a  +  1
                                                                                then  [x  /  l]
                                                                                else  [a  /  let  y  \mleftarrow{}{}  as  in  let  y  \mleftarrow{}{}  x  in  insert$_{\000Cint}$  y  y]
                                                                                fi 
                                                                fi  )) 
                        y 
                  y  \msim{}  insert-int(x;v))
4.  [x]  :  \mBbbZ{}
5.  let  y  \mleftarrow{}{}  v
      in  fix((\mlambda{}insert$_{int}$,x,l.  if  null(l)
                                                    then  [x]
                                                    else  let  a,as  =  l 
                                                              in  if  x  <z  a  +  1
                                                                    then  [x  /  l]
                                                                    else  [a  /  let  y  \mleftarrow{}{}  as  in  let  y  \mleftarrow{}{}  x  in  insert$_{int\mbackslash{}ff\000C7d$  y  y]
                                                                    fi 
                                                    fi  )) 
            x 
            y  \msim{}  insert-int(x;v)
\mvdash{}  if  x  <z  u  +  1  then  [x;  [u  /  v]]  else  [u  /  insert-int(x;v)]  fi    \msim{}  if  (u)  <  (x)
                                                                                                                                            then  [u  /  insert-int(x;v)]
                                                                                                                                            else  [x;  [u  /  v]]
By
Latex:
(UseWitness  \mkleeneopen{}Ax\mkleeneclose{}\mcdot{}
  THEN  MemCD
  THEN  (Decide  \mkleeneopen{}u  <  x\mkleeneclose{}\mcdot{}  THENA  Auto)
  THEN  (Reduce  0  THENA  Auto)
  THEN  (Decide  \mkleeneopen{}x  <  u  +  1\mkleeneclose{}\mcdot{}  THENA  Auto)
  THEN  Reduce  0
  THEN  Auto)
Home
Index