explicit predicate for confined bit range avoids cyclic rewriting in presence of extensionality rule for bit values (contributed by Thomas Sewell)
(* Title: HOL/Nunchaku.thy
Author: Jasmin Blanchette, VU Amsterdam
Copyright 2015, 2016, 2017
Nunchaku: Yet another counterexample generator for Isabelle/HOL.
Nunchaku relies on an external program of the same name. The sources are
available at
https://github.com/nunchaku-inria
The "$NUNCHAKU_HOME" environment variable must be set to the absolute path to
the directory containing the "nunchaku" executable. The Isabelle components
for CVC4, Kodkodi, and SMBC are necessary to use these backend solvers.
*)
theory Nunchaku
imports Nitpick
keywords
"nunchaku" :: diag and
"nunchaku_params" :: thy_decl
begin
consts unreachable :: 'a
definition The_unsafe :: "('a \<Rightarrow> bool) \<Rightarrow> 'a" where
"The_unsafe = The"
definition rmember :: "'a set \<Rightarrow> 'a \<Rightarrow> bool" where
"rmember A x \<longleftrightarrow> x \<in> A"
ML_file \<open>Tools/Nunchaku/nunchaku_util.ML\<close>
ML_file \<open>Tools/Nunchaku/nunchaku_collect.ML\<close>
ML_file \<open>Tools/Nunchaku/nunchaku_problem.ML\<close>
ML_file \<open>Tools/Nunchaku/nunchaku_translate.ML\<close>
ML_file \<open>Tools/Nunchaku/nunchaku_model.ML\<close>
ML_file \<open>Tools/Nunchaku/nunchaku_reconstruct.ML\<close>
ML_file \<open>Tools/Nunchaku/nunchaku_display.ML\<close>
ML_file \<open>Tools/Nunchaku/nunchaku_tool.ML\<close>
ML_file \<open>Tools/Nunchaku/nunchaku.ML\<close>
ML_file \<open>Tools/Nunchaku/nunchaku_commands.ML\<close>
hide_const (open) unreachable The_unsafe rmember
end