equal
deleted
inserted
replaced
134 |
134 |
135 val ivs = rev (Term.add_vars (Logic.varify (DatatypeProp.make_ind [descr] sorts)) []); |
135 val ivs = rev (Term.add_vars (Logic.varify (DatatypeProp.make_ind [descr] sorts)) []); |
136 val rvs = rev (Thm.fold_terms Term.add_vars thm' []); |
136 val rvs = rev (Thm.fold_terms Term.add_vars thm' []); |
137 val ivs1 = map Var (filter_out (fn (_, T) => |
137 val ivs1 = map Var (filter_out (fn (_, T) => |
138 tname_of (body_type T) mem ["set", "bool"]) ivs); |
138 tname_of (body_type T) mem ["set", "bool"]) ivs); |
139 val ivs2 = map (fn (ixn, _) => Var (ixn, valOf (AList.lookup (op =) rvs ixn))) ivs; |
139 val ivs2 = map (fn (ixn, _) => Var (ixn, the (AList.lookup (op =) rvs ixn))) ivs; |
140 |
140 |
141 val prf = List.foldr forall_intr_prf |
141 val prf = List.foldr forall_intr_prf |
142 (List.foldr (fn ((f, p), prf) => |
142 (List.foldr (fn ((f, p), prf) => |
143 (case head_of (strip_abs_body f) of |
143 (case head_of (strip_abs_body f) of |
144 Free (s, T) => |
144 Free (s, T) => |