diff options
| author | ericmarin <maarin.eric@gmail.com> | 2026-03-31 16:43:47 +0200 |
|---|---|---|
| committer | ericmarin <maarin.eric@gmail.com> | 2026-04-01 15:08:27 +0200 |
| commit | 81d4d604aa43660b732b3538734a52d509d7c5df (patch) | |
| tree | e0341280c3c3f10752aab7fccb2ddd5ed795c889 /examples/verify_xor.py | |
| parent | d1b25fbde6b01529fd1bcfdd5778b6cb378eb865 (diff) | |
| download | vein-81d4d604aa43660b732b3538734a52d509d7c5df.tar.gz vein-81d4d604aa43660b732b3538734a52d509d7c5df.zip | |
refactored examples
Diffstat (limited to '')
| -rw-r--r-- | examples/verify_xor.py | 35 |
1 files changed, 0 insertions, 35 deletions
diff --git a/examples/verify_xor.py b/examples/verify_xor.py deleted file mode 100644 index a9f5e23..0000000 --- a/examples/verify_xor.py +++ /dev/null @@ -1,35 +0,0 @@ -import sys, os -sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) - -import z3 -import nneq - -def check_property(onnx_a, onnx_b, vnnlib): - solver = nneq.Solver() - - print(f"--- Checking {vnnlib} ---") - - solver.load_onnx(onnx_a) - solver.load_onnx(onnx_b) - solver.load_vnnlib(vnnlib) - - result = solver.check() - - if result == z3.unsat: - print("VERIFIED (UNSAT): The networks are equivalent under this property.") - elif result == z3.sat: - print("FAILED (SAT): The networks are NOT equivalent.") - print("Counter-example input:") - print(solver.model()) - # m = solver.model() - # sorted_symbols = sorted([s for s in m.decls() if s.name().startswith("X_")], key=lambda s: s.name()) - # for s in sorted_symbols: - # print(f" {s.name()} = {m[s]}") - else: - print("UNKNOWN") - print("") - -if __name__ == "__main__": - check_property("./examples/xor/xor_a.onnx", "./examples/xor/xor_b.onnx", "./examples/xor/xor_strict.vnnlib") - check_property("./examples/xor/xor_a.onnx", "./examples/xor/xor_b.onnx", "./examples/xor/xor_epsilon.vnnlib") - check_property("./examples/xor/xor_a.onnx", "./examples/xor/xor_b.onnx", "./examples/xor/xor_argmax.vnnlib") |
