equal
deleted
inserted
replaced
345 |
345 |
346 (*Replaces universally quantified variables by FREE variables -- because |
346 (*Replaces universally quantified variables by FREE variables -- because |
347 assumptions may not contain scheme variables. Later, generalize using Variable.export. *) |
347 assumptions may not contain scheme variables. Later, generalize using Variable.export. *) |
348 local |
348 local |
349 val spec_var = Thm.dest_arg (Thm.dest_arg (#2 (Thm.dest_implies (Thm.cprop_of spec)))); |
349 val spec_var = Thm.dest_arg (Thm.dest_arg (#2 (Thm.dest_implies (Thm.cprop_of spec)))); |
350 val spec_varT = #T (Thm.rep_cterm spec_var); |
350 val spec_varT = Thm.typ_of_cterm spec_var; |
351 fun name_of (Const (@{const_name All}, _) $ Abs(x,_,_)) = x | name_of _ = Name.uu; |
351 fun name_of (Const (@{const_name All}, _) $ Abs(x,_,_)) = x | name_of _ = Name.uu; |
352 in |
352 in |
353 fun freeze_spec th ctxt = |
353 fun freeze_spec th ctxt = |
354 let |
354 let |
355 val cert = Proof_Context.cterm_of ctxt; |
355 val cert = Proof_Context.cterm_of ctxt; |