Hi,guys
     I am working with HOL4. 
     This is the subgoal
 > val it =
     TAKE h' (CX (INSERT h t) p q) ++
    DROP h' (CX (INSERT h t) q p) =
    TAKE h (CX l p q) ++ DROP h (CX l q p)
    ------------------------------------
      0.  !p' q'.
            (LENGTH p' = LENGTH q') ==>
            (CX (h'::t) p' q' = CX l p' q')
      1.  LENGTH p = LENGTH q
       2.   h' < h
     
     I had proved that:     
 []
    |- !p q l n.
         (LENGTH p = LENGTH q) ==>
         (CX (INSERT n l) p q = CX (n::l) p q) : thm     named "CX_IN".
  
     Where,
     val INSERT = Define `(INSERT n []  = n :: [] )
                       /\ (INSERT n (x::xs)  = if (n < x) then n::(x::xs)
                                             else if (n = x) then xs
                                                else  x::(INSERT n xs))`;     
  
     This function could get an increased list.
 
     val CX_def = Define`
       (CX [] p q = p) /\
       (CX (x::xs) p q = TAKE x (CX xs p q) ++ DROP x (CX xs q p))`;  
  
     Next,I think I should rewrite "(CX (INSERT h t) p q)" with CX_IN,But I 
can't find an appropriate rewrite tactic.
     Which tactic is available?
  
      Thanks!
------------------------------------------------------------------------------
Transform Data into Opportunity.
Accelerate data analysis in your applications with
Intel Data Analytics Acceleration Library.
Click to learn more.
http://pubads.g.doubleclick.net/gampad/clk?id=278785471&iu=/4140
_______________________________________________
hol-info mailing list
hol-info@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/hol-info

Reply via email to