aboutsummaryrefslogtreecommitdiff
path: root/plugins/micromega/persistent_cache.mli
diff options
context:
space:
mode:
authorFrédéric Besson2019-03-28 15:24:33 +0100
committerFrédéric Besson2019-09-16 16:02:38 +0200
commitdfff69ef604e02703575cb1cb15b2f77eda5f0f4 (patch)
treea18ae2078ecd8c3e7f46ae947b9d4ba8499b0704 /plugins/micromega/persistent_cache.mli
parent3d7de72f45ae2f8bcedbe1db0eb8870e58757b45 (diff)
Re-implementation of zify
The logic is implemented in OCaml. By induction over the terms, guided by registered Coq terms in ZifyInst.v, it generates a rewriting lemma. The rewriting is only performed if there is some progress. If the rewriting fails (due to dependencies), a novel hypothesis is generated. This PR fixes #5155, fixes #8898, fixes #7886, fixes #10707, fixes #9848 ans fixes #10755. The zify plugin is placed in the micromega directory. (Though the reason is unclear, having it in a separate directory is bad for efficiency.) efficiency impact. There are also a few improvements of lia/lra that are piggybacked. - more aggressive pruning of useless hypotheses - slightly optimised conjunctive normal form - applies exfalso if conclusion is not in Prop - removal of Timeout in test-suite
Diffstat (limited to 'plugins/micromega/persistent_cache.mli')
-rw-r--r--plugins/micromega/persistent_cache.mli4
1 files changed, 4 insertions, 0 deletions
diff --git a/plugins/micromega/persistent_cache.mli b/plugins/micromega/persistent_cache.mli
index 4248407221..cb14d73972 100644
--- a/plugins/micromega/persistent_cache.mli
+++ b/plugins/micromega/persistent_cache.mli
@@ -32,6 +32,10 @@ module type PHashtable =
(** [memo cache f] returns a memo function for [f] using file [cache] as persistent table.
Note that the cache will only be loaded when the function is used for the first time *)
+ val memo_cond : string -> (key -> bool) -> (key -> 'a) -> (key -> 'a)
+ (** [memo cache cond f] only use the cache if [cond k] holds for the key [k]. *)
+
+
end
module PHashtable(Key:HashedType) : PHashtable with type key = Key.t