src/HOL/Tools/Presburger/cooper_dec.ML
changeset 14758 af3b71a46a1c
parent 13876 68f4ed8311ac
child 14877 28084696907f
equal deleted inserted replaced
14757:556ce89b7d41 14758:af3b71a46a1c
    27   val divlcm : term -> term -> int
    27   val divlcm : term -> term -> int
    28   val bset : term -> term -> term list
    28   val bset : term -> term -> term list
    29   val aset : term -> term -> term list
    29   val aset : term -> term -> term list
    30   val linrep : string list -> term -> term -> term -> term
    30   val linrep : string list -> term -> term -> term -> term
    31   val list_disj : term list -> term
    31   val list_disj : term list -> term
       
    32   val list_conj : term list -> term
    32   val simpl : term -> term
    33   val simpl : term -> term
    33   val fv : term -> string list
    34   val fv : term -> string list
    34   val negate : term -> term
    35   val negate : term -> term
    35   val operations : (string * (int * int -> bool)) list
    36   val operations : (string * (int * int -> bool)) list
       
    37   val conjuncts : term -> term list
       
    38   val disjuncts : term -> term list
       
    39   val has_bound : term -> bool
       
    40   val minusinf : term -> term -> term
       
    41   val plusinf : term -> term -> term
    36 end;
    42 end;
    37 
    43 
    38 structure  CooperDec : COOPER_DEC =
    44 structure  CooperDec : COOPER_DEC =
    39 struct
    45 struct
    40 
    46 
   181         if is_numeral s' then (linear_cmul (dest_numeral s') t') 
   187         if is_numeral s' then (linear_cmul (dest_numeral s') t') 
   182         else if is_numeral t' then (linear_cmul (dest_numeral t') s') 
   188         else if is_numeral t' then (linear_cmul (dest_numeral t') s') 
   183  
   189  
   184          else (warning "lint: apparent nonlinearity"; raise COOPER)
   190          else (warning "lint: apparent nonlinearity"; raise COOPER)
   185          end 
   191          end 
   186   |_ =>   error "lint: unknown term"; 
   192   |_ =>   (error "COOPER:lint: unknown term  ")
   187    
   193    
   188  
   194  
   189  
   195  
   190 (* ------------------------------------------------------------------------- *) 
   196 (* ------------------------------------------------------------------------- *) 
   191 (* Linearize the atoms in a formula, and eliminate non-strict inequalities.  *) 
   197 (* Linearize the atoms in a formula, and eliminate non-strict inequalities.  *)