Hey guys,

I am learning to use HOL. Here is some code.
  
 load "abs_tools";                                                              
 
open abs_tools;
val _ = type_abbrev ("num_field", ``:complex -> bool``);             
 (* ------------------------------------------------------------------ *)
(* Definition of number field.                                        *) 
(* ------------------------------------------------------------------ *)        
                                                             
val s = ``s : num_field``;                                               
   
val nf_carrier = ``s SUBSET univ(:complex) /\ s <> {}:complex -> bool``;
 val nf_constant = ``0c IN s /\ 1c IN s``;
 val nf_operation = ``!a:complex b:complex.  a IN s /\ b IN s  
                                            ==> (a+b IN s) /\ (a-b IN s) /\ 
(a*b IN s)       
                                                /\ (if a <> 0 then b/a IN s 
else a = 0c)``;   
     
val is_num_field_def = Define `
     num_field ^s =
                     ^nf_carrier 
                  /\ ^nf_constant
                  /\ ^nf_operation `;
 (* We work on an abstract number field s *)   
                                                              
val _ = set_assums [ ``num_field ^s`` ];        
 
(* prove the coditions of number field *)  
   
val nf_proj_tac =                                                               
  POP_ASSUM MP_TAC THEN RW_TAC arith_ss [is_num_field_def] THEN STRIP_TAC;
 val carrier =                                                                  
         
  asm_store_thm("carrier",nf_carrier,nf_proj_tac); 
 val constant =                                                                 
          
  asm_store_thm("constant",nf_constant,nf_proj_tac);  
 val operation =
  asm_store_thm("operation",nf_operation,nf_proj_tac);
  
 Now, I want to write the prove in another way. For example, how to transform
  
 "val carrier =                                                                 
          
  asm_store_thm("carrier",nf_carrier,nf_proj_tac); "
  
 into the form of
  
 "g(...)
  e(...)
  e(...)
 "
 Thanks! --Wish.
------------------------------------------------------------------------------
_______________________________________________
hol-info mailing list
hol-info@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/hol-info

Reply via email to