Commit Graph

87 Commits

Author SHA1 Message Date
Guangyu (Gary) HU 704dc9375d mini_ic3: fix generalize() returning empty/init-overlapping core (#9245)
Two fixes in examples/python/mini_ic3.py:

1. generalize(): the polarity of the disjointness check was inverted,
   and there was no guard against an empty unsat core. With an empty
   core, And([])=True so check_disjoint(init, prev(True)) is always
   False (init is sat), and the code returned the empty core. That
   empty core then became cube2clause([])=Or([])=False, which got
   added as a lemma to all frames. The frame became inconsistent and
   is_valid() returned And(Or())=False as the "inductive invariant".

   Fix: require len(core) > 0 AND check_disjoint(init, prev(core))
   (without the spurious 'not'), so the core is only used when it
   is genuinely disjoint from init.

2. is_transition(): when an init rule's body happens to be an And
   without any Invariant predicate (e.g. (and (not A) (not B) ...)),
   is_body() returns (And(...), None). is_transition then passed
   inv0=None to subst_vars() which crashed inside get_vars(). Add an
   explicit None check so the rule falls through to is_init().

Verified on horn1..5 (unchanged behavior), h_CRC and h_FIFO from the
blocksys benchmarks (now correctly return CEX matching z3 spacer),
and cache_coherence_three (no longer collapses to (and or)).
2026-04-09 02:01:07 -07:00
Bruce Mitchener 53f89a81c1 Fix some typos. (#7115) 2024-02-07 23:06:43 -08:00
Nikolaj Bjorner ebe5ebf0ae Add branch and bound solver, for fun 2023-12-23 11:58:29 -08:00
Nikolaj Bjorner 4fe423482a bugfix on slack
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-12-21 15:36:26 -08:00
Nikolaj Bjorner ae1d9270b5 improve add bin/item functions
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-12-21 15:27:11 -08:00
Nikolaj Bjorner b09c237775 rudimentary bin cover solver using the user propagator
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2023-12-21 15:18:26 -08:00
Nikolaj Bjorner f6595c161f add examples with proof replay
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-10-19 17:43:56 -07:00
Nikolaj Bjorner 88d10f7fe4 add example for monitoring proof logs
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-10-19 13:37:51 -07:00
Nikolaj Bjorner 791ca02ab1 formula simplification example
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-08-11 09:33:36 +03:00
Nikolaj Bjorner dd46224a1d use structured proof hints
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-05-28 09:37:41 -07:00
Nikolaj Bjorner a5d588ce09 add example for #5933 2022-04-05 04:26:40 +02:00
Nikolaj Bjorner 053cb72cc2 handle return status 2022-04-04 20:19:15 +02:00
Nikolaj Bjorner 4f6811a6a2 with simplification 2022-04-03 21:10:53 -07:00
Nikolaj Bjorner 53f72d9cbe updated mini
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2022-01-26 15:44:49 -08:00
Matteo Nicoli cbdd7b0696 three smt2 examples added and one python example updated (#5690) 2021-12-01 16:21:12 -08:00
rainoftime b5deba8426 add EFSMT solving example (#5654)
Co-authored-by: rainoftime <rainoftime@gmail.com>
2021-11-09 11:05:10 -08:00
Nikolaj Bjorner a1b036a4fa Update README.md 2021-04-25 17:02:34 -07:00
Nikolaj Bjorner 3ff5d4226a Update README.md 2021-04-25 16:59:53 -07:00
Tias Guns a52b485d9c marco: immediately shrink to core if not subset (#5203)
Small improvement, found while translating it in another system
2021-04-20 12:29:52 -07:00
Nikolaj Bjorner 7fab0f5923 updated experiment 2021-03-26 14:58:23 -07:00
Nikolaj Bjorner 7eceeff349 move branch of unit variable 2021-03-08 10:09:04 -08:00
Nikolaj Bjorner 3c26a965e1 updated script, add comment to mk_eq_empty 2021-03-07 06:59:58 -08:00
Nikolaj Bjorner 8de96009cd na 2021-03-06 12:36:19 -08:00
Nikolaj Bjorner 8d54e83567 updated hitting set sample 2021-03-06 10:18:52 -08:00
Nikolaj Bjorner 022a1fd3dd fix #5080 assertion is violated on legal input, add an example 2021-03-05 15:01:39 -08:00
Nuno Lopes 1bb9a02160 travis timeouts 2021-02-21 13:13:19 +00:00
Matteo Nicoli 785fab74f4 Create bubble_sort.py (#4976) 2021-01-26 09:42:17 -08:00
Andrew V. Jones bb9cd5dd49 Ensure that the 'OUTPUT' locations in CMake for Python examples is accurate (#4499)
Signed-off-by: Andrew V. Jones <andrew.jones@vector.com>
2020-06-04 15:04:01 -07:00
Bruce Mitchener 0edd587e5a Fix typos in examples. 2019-08-14 22:00:50 -07:00
Nikolaj Bjorner 807095a344 fix #2375
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-07-03 10:04:00 +07:00
Nikolaj Bjorner e5dffeace4 fix #2365
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-06-30 08:40:41 +03:00
Nikolaj Bjorner b4bbe12ca1 set kernel to 3
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-06-11 10:41:51 -07:00
Nikolaj Bjorner 7bfb730fee fix traffic jam
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-06-10 17:45:55 -07:00
Nikolaj Bjorner b4daf8dcd8 adding advanced port
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-06-10 12:33:20 -07:00
Nikolaj Bjorner 9f426443ca saving strategies tutorial from notebooks.azure.com
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-06-10 10:30:11 -07:00
Nikolaj Bjorner 6cd7169665 readme and link
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-06-09 11:10:35 -07:00
Nikolaj Bjorner 2861b10d58 update
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-06-08 09:26:15 -07:00
Nikolaj Bjorner 08528b3526 ported guide
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-06-08 09:20:55 -07:00
Nikolaj Bjorner 36e03db0f3 png
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-06-07 19:29:14 -07:00
Nikolaj Bjorner e0a49dd556 html pages for z3 python tutorial
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-06-07 19:14:54 -07:00
Charlie Barto 167f968fa8 Change from BINARY_DIR to PROJECT_BINARY_DIR 2019-05-15 11:25:40 -07:00
Nikolaj Bjorner 56ac3f86a5 fix justification for implied equalities in special relations
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2019-04-03 17:08:10 -07:00
Titus Barik 2f0d2ec385 PYTHON_PATH should say PYTHONPATH. 2019-01-18 16:18:16 -08:00
Huanyi Chen 19471f9fa3 Implement mini_quip 2019-01-04 18:30:02 -05:00
Huanyi Chen 83e3a79bd1 Remove testcase that takes long time to finish 2019-01-04 17:31:47 -05:00
Huanyi Chen 4b29b208ad Add few more testcases 2018-12-28 13:28:15 -05:00
Huanyi Chen 300e99b67a Make sure init is included when generalize 2018-12-28 13:21:40 -05:00
Huanyi Chen b083c7546e Substitue Vars in queries
Replace Vars that are representing primary inputs as "i#" when query
solvers.
2018-12-28 13:21:35 -05:00
Nikolaj Bjorner f591e0948a fix #1841
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-11-22 15:28:33 -08:00
Nikolaj Bjorner 498fa87993 seq rewriting fixes
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-11-22 10:48:49 -08:00