equal
deleted
inserted
replaced
301 fun setcompr_tr' [Abs (abs as (_, _, P))] = |
301 fun setcompr_tr' [Abs (abs as (_, _, P))] = |
302 let |
302 let |
303 fun check (Const ("Ex", _) $ Abs (_, _, P), n) = check (P, n + 1) |
303 fun check (Const ("Ex", _) $ Abs (_, _, P), n) = check (P, n + 1) |
304 | check (Const ("op &", _) $ (Const ("op =", _) $ Bound m $ e) $ P, n) = |
304 | check (Const ("op &", _) $ (Const ("op =", _) $ Bound m $ e) $ P, n) = |
305 n > 0 andalso m = n andalso not (loose_bvar1 (P, n)) andalso |
305 n > 0 andalso m = n andalso not (loose_bvar1 (P, n)) andalso |
306 gen_subset (op =) (0 upto (n - 1), add_loose_bnos (e, 0, [])) |
306 subset (op =) (0 upto (n - 1), add_loose_bnos (e, 0, [])) |
307 | check _ = false |
307 | check _ = false |
308 |
308 |
309 fun tr' (_ $ abs) = |
309 fun tr' (_ $ abs) = |
310 let val _ $ idts $ (_ $ (_ $ _ $ e) $ Q) = ex_tr' [abs] |
310 let val _ $ idts $ (_ $ (_ $ _ $ e) $ Q) = ex_tr' [abs] |
311 in Syntax.const "@SetCompr" $ e $ idts $ Q end; |
311 in Syntax.const "@SetCompr" $ e $ idts $ Q end; |