equal
deleted
inserted
replaced
48 fun plural sg pl [x] = sg |
48 fun plural sg pl [x] = sg |
49 | plural sg pl _ = pl |
49 | plural sg pl _ = pl |
50 |
50 |
51 |
51 |
52 (* Removes all quantifiers from a term, replacing bound variables by frees. *) |
52 (* Removes all quantifiers from a term, replacing bound variables by frees. *) |
53 fun dest_all_all (t as (Const (@{const_name Pure.all},_) $ _)) = |
53 fun dest_all_all (t as (Const (\<^const_name>\<open>Pure.all\<close>,_) $ _)) = |
54 let |
54 let |
55 val (v,b) = Logic.dest_all t |> apfst Free |
55 val (v,b) = Logic.dest_all t |> apfst Free |
56 val (vs, b') = dest_all_all b |
56 val (vs, b') = dest_all_all b |
57 in |
57 in |
58 (v :: vs, b') |
58 (v :: vs, b') |
127 THEN resolve_tac ctxt [Drule.reflexive_thm] 1)) |
127 THEN resolve_tac ctxt [Drule.reflexive_thm] 1)) |
128 end |
128 end |
129 |
129 |
130 (* instance for unions *) |
130 (* instance for unions *) |
131 fun regroup_union_conv ctxt = |
131 fun regroup_union_conv ctxt = |
132 regroup_conv ctxt @{const_abbrev Set.empty} @{const_name Lattices.sup} |
132 regroup_conv ctxt \<^const_abbrev>\<open>Set.empty\<close> \<^const_name>\<open>Lattices.sup\<close> |
133 (map (fn t => t RS eq_reflection) |
133 (map (fn t => t RS eq_reflection) |
134 (@{thms Un_ac} @ @{thms Un_empty_right} @ @{thms Un_empty_left})) |
134 (@{thms Un_ac} @ @{thms Un_empty_right} @ @{thms Un_empty_left})) |
135 |
135 |
136 |
136 |
137 fun inst_constrs_of ctxt (Type (name, Ts)) = |
137 fun inst_constrs_of ctxt (Type (name, Ts)) = |