equal
deleted
inserted
replaced
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 |