src/HOL/Tools/Sledgehammer/metis_tactics.ML
changeset 38549 d0385f2764d8
parent 38433 1e28e2e1c2fb
child 38612 fa7e19c6be74
equal deleted inserted replaced
38548:dea0d2cca822 38549:d0385f2764d8
   306       fun cvt (Metis.Term.Fn ("ti", [Metis.Term.Var v, _])) =
   306       fun cvt (Metis.Term.Fn ("ti", [Metis.Term.Var v, _])) =
   307              (case strip_prefix_and_undo_ascii schematic_var_prefix v of
   307              (case strip_prefix_and_undo_ascii schematic_var_prefix v of
   308                   SOME w =>  mk_var(w, dummyT)
   308                   SOME w =>  mk_var(w, dummyT)
   309                 | NONE   => mk_var(v, dummyT))
   309                 | NONE   => mk_var(v, dummyT))
   310         | cvt (Metis.Term.Fn ("ti", [Metis.Term.Fn ("=",[]), _])) =
   310         | cvt (Metis.Term.Fn ("ti", [Metis.Term.Fn ("=",[]), _])) =
   311             Const ("op =", HOLogic.typeT)
   311             Const (@{const_name "op ="}, HOLogic.typeT)
   312         | cvt (Metis.Term.Fn ("ti", [Metis.Term.Fn (x,[]), ty])) =
   312         | cvt (Metis.Term.Fn ("ti", [Metis.Term.Fn (x,[]), ty])) =
   313            (case strip_prefix_and_undo_ascii const_prefix x of
   313            (case strip_prefix_and_undo_ascii const_prefix x of
   314                 SOME c => Const (invert_const c, dummyT)
   314                 SOME c => Const (invert_const c, dummyT)
   315               | NONE => (*Not a constant. Is it a fixed variable??*)
   315               | NONE => (*Not a constant. Is it a fixed variable??*)
   316             case strip_prefix_and_undo_ascii fixed_var_prefix x of
   316             case strip_prefix_and_undo_ascii fixed_var_prefix x of