src/HOL/Tools/Quotient/quotient_tacs.ML
changeset 37563 6cf28a1dfd75
parent 37560 1b5bbc4a14bc
child 37564 a47bb386b238
equal deleted inserted replaced
37562:21ab339715cd 37563:6cf28a1dfd75
   647 let
   647 let
   648   (* When the theorem is atomized, eta redexes are contracted,
   648   (* When the theorem is atomized, eta redexes are contracted,
   649      so we do it both in the original theorem *)
   649      so we do it both in the original theorem *)
   650   val thm' = Drule.eta_contraction_rule thm
   650   val thm' = Drule.eta_contraction_rule thm
   651   val ((_, [thm'']), ctxt') = Variable.import false [thm'] ctxt
   651   val ((_, [thm'']), ctxt') = Variable.import false [thm'] ctxt
   652   val goal = derive_qtrm qtys (prop_of thm'') ctxt' 
   652   val goal = derive_qtrm qtys (prop_of thm'') false ctxt'
   653 in
   653 in
   654   Goal.prove ctxt' [] [] goal (K (lift_tac ctxt' [thm'] 1))
   654   Goal.prove ctxt' [] [] goal (K (lift_tac ctxt' [thm'] 1))
   655   |> singleton (ProofContext.export ctxt' ctxt)
   655   |> singleton (ProofContext.export ctxt' ctxt)
   656 end;
   656 end;
   657 
   657