src/HOL/Set.thy
changeset 4151 5c19cd418c33
parent 3947 eb707467f8c5
child 4159 4aff9b7e5597
equal deleted inserted replaced
4150:56025371fc02 4151:5c19cd418c33
   161 
   161 
   162 local
   162 local
   163 
   163 
   164 (* Set inclusion *)
   164 (* Set inclusion *)
   165 
   165 
   166 fun le_tr' (*op <=*) (Type ("fun", (Type ("set", _) :: _))) ts =
   166 fun le_tr' _ (*op <=*) (Type ("fun", (Type ("set", _) :: _))) ts =
   167       list_comb (Syntax.const "_setle", ts)
   167       list_comb (Syntax.const "_setle", ts)
   168   | le_tr' (*op <=*) _ _ = raise Match;
   168   | le_tr' _ (*op <=*) _ _ = raise Match;
   169 
   169 
   170 fun less_tr' (*op <*) (Type ("fun", (Type ("set", _) :: _))) ts =
   170 fun less_tr' _ (*op <*) (Type ("fun", (Type ("set", _) :: _))) ts =
   171       list_comb (Syntax.const "_setless", ts)
   171       list_comb (Syntax.const "_setless", ts)
   172   | less_tr' (*op <*) _ _ = raise Match;
   172   | less_tr' _ (*op <*) _ _ = raise Match;
   173 
   173 
   174 
   174 
   175 (* Translates between { e | x1..xn. P} and {u. ? x1..xn. u=e & P}      *)
   175 (* Translates between { e | x1..xn. P} and {u. ? x1..xn. u=e & P}      *)
   176 (* {y. ? x1..xn. y = e & P} is only translated if [0..n] subset bvs(e) *)
   176 (* {y. ? x1..xn. y = e & P} is only translated if [0..n] subset bvs(e) *)
   177 
   177