src/HOL/Tools/Predicate_Compile/predicate_compile_core.ML
changeset 32671 fbd224850767
parent 32669 462b1dd67a58
child 32672 90f3ce5d27ae
equal deleted inserted replaced
32670:cc0bae788b7e 32671:fbd224850767
  1177     val U' = dest_predT compfuns U;
  1177     val U' = dest_predT compfuns U;
  1178     val v = Free (name, T);
  1178     val v = Free (name, T);
  1179     val v' = Free (name', T);
  1179     val v' = Free (name', T);
  1180   in
  1180   in
  1181     lambda v (fst (Datatype.make_case
  1181     lambda v (fst (Datatype.make_case
  1182       (ProofContext.init thy) false [] v
  1182       (ProofContext.init thy) DatatypeCase.Quiet [] v
  1183       [(mk_tuple out_ts,
  1183       [(mk_tuple out_ts,
  1184         if null eqs'' then success_t
  1184         if null eqs'' then success_t
  1185         else Const (@{const_name HOL.If}, HOLogic.boolT --> U --> U --> U) $
  1185         else Const (@{const_name HOL.If}, HOLogic.boolT --> U --> U --> U) $
  1186           foldr1 HOLogic.mk_conj eqs'' $ success_t $
  1186           foldr1 HOLogic.mk_conj eqs'' $ success_t $
  1187             mk_bot compfuns U'),
  1187             mk_bot compfuns U'),