kind2-mc / kind2

Multi-engine SMT-based automatic model checker for safety properties of Lustre programs
https://kind.cs.uiowa.edu
Apache License 2.0
87 stars 29 forks source link

Use get_var_values to get model in certifChecker #1099

Closed daniel-larraz closed 2 months ago

daniel-larraz commented 2 months ago

Previously, models were retrieved using get-model, which could cause issues when minimizing invariants for Lustre models with arrays encoded as values of an uninterpreted sort, FArray, with arity 2. If the Lustre model includes arrays for two different element types (e.g., FArray Int Bool and FArray Int Int), Z3 returns models where the universes for FArray Int Bool and FArray Int Int may contain constants with the same name (e.g. FArray!val!3).