equal
deleted
inserted
replaced
1154 (* for ALL types, not ...) *) |
1154 (* for ALL types, not ...) *) |
1155 val _ = null (Term.add_tvars t []) orelse |
1155 val _ = null (Term.add_tvars t []) orelse |
1156 error "Term to be refuted contains schematic type variables" |
1156 error "Term to be refuted contains schematic type variables" |
1157 |
1157 |
1158 (* existential closure over schematic variables *) |
1158 (* existential closure over schematic variables *) |
1159 val vars = sort_wrt (fst o fst) (Term.add_vars t []) |
1159 val vars = sort_by (fst o fst) (Term.add_vars t []) |
1160 (* Term.term *) |
1160 (* Term.term *) |
1161 val ex_closure = fold (fn ((x, i), T) => fn t' => |
1161 val ex_closure = fold (fn ((x, i), T) => fn t' => |
1162 HOLogic.exists_const T $ |
1162 HOLogic.exists_const T $ |
1163 Abs (x, T, abstract_over (Var ((x, i), T), t'))) vars t |
1163 Abs (x, T, abstract_over (Var ((x, i), T), t'))) vars t |
1164 (* Note: If 't' is of type 'propT' (rather than 'boolT'), applying *) |
1164 (* Note: If 't' is of type 'propT' (rather than 'boolT'), applying *) |