src/Tools/isac/Knowledge/RootRatEq.thy
branchisac-update-Isa09-2
changeset 38031 460c24a6a6ba
parent 38015 67ba02dffacc
child 40836 69364e021751
equal deleted inserted replaced
38030:95d956108461 38031:460c24a6a6ba
    46 	fun rootadd (t as (Const ("Groups.plus_class.plus",_) $ t2 $ t3)) v = 
    46 	fun rootadd (t as (Const ("Groups.plus_class.plus",_) $ t2 $ t3)) v = 
    47             (is_rootTerm_in t2 v) orelse (is_rootTerm_in t3 v)
    47             (is_rootTerm_in t2 v) orelse (is_rootTerm_in t3 v)
    48 	  | rootadd (t as (Const ("Groups.minus_class.minus",_) $ t2 $ t3)) v = 
    48 	  | rootadd (t as (Const ("Groups.minus_class.minus",_) $ t2 $ t3)) v = 
    49             (is_rootTerm_in t2 v) orelse (is_rootTerm_in t3 v)
    49             (is_rootTerm_in t2 v) orelse (is_rootTerm_in t3 v)
    50 	  | rootadd _ _ = false;
    50 	  | rootadd _ _ = false;
    51 	fun findrootrat (_ $ _ $ _ $ _) v = raise error("is_rootRatAddTerm_in:")
    51 	fun findrootrat (_ $ _ $ _ $ _) v = error("is_rootRatAddTerm_in:")
    52 	  (* at the moment there is no term like this, but ....*)
    52 	  (* at the moment there is no term like this, but ....*)
    53 	  | findrootrat (t as (Const ("Rings.inverse_class.divide",_) $ _ $ t3)) v = 
    53 	  | findrootrat (t as (Const ("Rings.inverse_class.divide",_) $ _ $ t3)) v = 
    54 	               if (is_rootTerm_in t3 v) then rootadd t3 v else false
    54 	               if (is_rootTerm_in t3 v) then rootadd t3 v else false
    55 	  | findrootrat (_ $ t1 $ t2) v = 
    55 	  | findrootrat (_ $ t1 $ t2) v = 
    56             (findrootrat t1 v) orelse (findrootrat t2 v)
    56             (findrootrat t1 v) orelse (findrootrat t2 v)