missing recursive let-expansion in SMT translation
authorMathias Fleury <Mathias.Fleury@mpi-inf.mpg.de>
Sat, 25 Jun 2022 06:34:11 +0200
changeset 75611 66edc020a322
parent 75610 da901dcafc29
child 75618 85a7795675be
missing recursive let-expansion in SMT translation
src/HOL/Tools/SMT/smt_translate.ML
--- a/src/HOL/Tools/SMT/smt_translate.ML	Fri Jun 24 21:17:35 2022 +0200
+++ b/src/HOL/Tools/SMT/smt_translate.ML	Sat Jun 25 06:34:11 2022 +0200
@@ -210,7 +210,7 @@
       | expand (q as Const (\<^const_name>\<open>Ex\<close>, T)) = exp2 T q
       | expand (Const (\<^const_name>\<open>Let\<close>, T) $ t) =
           let val U = Term.domain_type (Term.range_type T)
-          in Abs (Name.uu, U, Bound 0 $ Term.incr_boundvars 1 t) end
+          in Abs (Name.uu, U, expand (Bound 0 $ Term.incr_boundvars 1 t)) end
       | expand (Const (\<^const_name>\<open>Let\<close>, T)) =
           let val U = Term.domain_type (Term.range_type T)
           in Abs (Name.uu, Term.domain_type T, Abs (Name.uu, U, Bound 0 $ Bound 1)) end