equal
deleted
inserted
replaced
169 val Bi = Thm.term_of cBi; |
169 val Bi = Thm.term_of cBi; |
170 val ps = Logic.strip_params Bi; |
170 val ps = Logic.strip_params Bi; |
171 val U = Term.fastype_of1 (rev (map snd ps), t); |
171 val U = Term.fastype_of1 (rev (map snd ps), t); |
172 val Q = Data.dest_Trueprop (Logic.strip_assums_concl Bi); |
172 val Q = Data.dest_Trueprop (Logic.strip_assums_concl Bi); |
173 val rl' = Thm.lift_rule cBi rl; |
173 val rl' = Thm.lift_rule cBi rl; |
174 val Var (ixn, T) = Term.head_of (Data.dest_Trueprop |
174 val (ixn, T) = dest_Var (Term.head_of (Data.dest_Trueprop |
175 (Logic.strip_assums_concl (Thm.prop_of rl'))); |
175 (Logic.strip_assums_concl (Thm.prop_of rl')))); |
176 val (v1, v2) = Data.dest_eq (Data.dest_Trueprop |
176 val (v1, v2) = Data.dest_eq (Data.dest_Trueprop |
177 (Logic.strip_assums_concl (hd (Thm.prems_of rl')))); |
177 (Logic.strip_assums_concl (hd (Thm.prems_of rl')))); |
178 val (Ts, V) = split_last (Term.binder_types T); |
178 val (Ts, V) = split_last (Term.binder_types T); |
179 val u = |
179 val u = |
180 fold_rev Term.abs (ps @ [("x", U)]) |
180 fold_rev Term.abs (ps @ [("x", U)]) |