diff options
| author | mirenn <me@mirenn.dev> | 2026-03-10 11:05:26 +0100 |
|---|---|---|
| committer | mirenn <me@mirenn.dev> | 2026-03-10 12:05:35 +0100 |
| commit | 4a6246cdb0ed60355db6707ba23a5da45c87bb7a (patch) | |
| tree | 2a1594ab6f8d2cfeb784dee80e2d830d9999e4a5 /parser.py | |
| parent | 4e3d71222eaef37f7b23c29b7a0b417ab9829c58 (diff) | |
| download | vein-4a6246cdb0ed60355db6707ba23a5da45c87bb7a.tar.gz vein-4a6246cdb0ed60355db6707ba23a5da45c87bb7a.zip | |
added prover script
Diffstat (limited to '')
| -rw-r--r-- | parser.py | 53 |
1 files changed, 0 insertions, 53 deletions
diff --git a/parser.py b/parser.py deleted file mode 100644 index e66f9d2..0000000 --- a/parser.py +++ /dev/null @@ -1,53 +0,0 @@ - -class Concrete: - def __init__(self, val): self.val = val - def __str__(self): return str(self.val) - -class Symbolic: - def __init__(self, id): self.id = id - def __str__(self): return f"x_{self.id}" - -class TermAdd: - def __init__(self, a, b): self.a, self.b = a, b - def __str__(self): return f"(+ {self.a} {self.b})" - -class TermMul: - def __init__(self, a, b): self.a, self.b = a, b - def __str__(self): return f"(* {self.a} {self.b})" - -class TermReLU: - def __init__(self, a): self.a = a - def __str__(self): return f"(ite (> {self.a} 0) {self.a} 0)" - -def generate_z3(net_a_str, net_b_str, epsilon=1e-5): - context = { - 'Concrete': Concrete, - 'Symbolic': Symbolic, - 'TermAdd': TermAdd, - 'TermMul': TermMul, - 'TermReLU': TermReLU - } - - try: - tree_a = eval(net_a_str, context) - tree_b = eval(net_b_str, context) - except Exception as e: - print(f"; Error parsing Inpla output: {e}") - return - - print("(declare-const x_0 Real)") - print("(declare-const x_1 Real)") - - print(f"(define-fun net_a () Real {tree_a})") - print(f"(define-fun net_b () Real {tree_b})") - - print(f"(assert (> (abs (- net_a net_b)) {epsilon:.10f}))") - - print("(check-sat)") - print("(get-model)") - -if __name__ == "__main__": - output_net_a = "TermAdd(TermMul(Symbolic(0), Concrete(2)), Concrete(3))" # 2x + 3 - output_net_b = "TermAdd(Concrete(3), TermMul(Concrete(2), Symbolic(0)))" # 3 + 2x - - generate_z3(output_net_a, output_net_b) |
