mirror of
https://github.com/Z3Prover/z3
synced 2026-06-08 01:50:55 +00:00
Spacer engine for HORN logic
The algorithms implemented in the engine are described in the following papers Anvesh Komuravelli, Nikolaj Bjørner, Arie Gurfinkel, Kenneth L. McMillan: Compositional Verification of Procedural Programs using Horn Clauses over Integers and Arrays. FMCAD 2015: 89-96 Nikolaj Bjørner, Arie Gurfinkel: Property Directed Polyhedral Abstraction. VMCAI 2015: 263-281 Anvesh Komuravelli, Arie Gurfinkel, Sagar Chaki: SMT-Based Model Checking for Recursive Programs. CAV 2014: 17-34
This commit is contained in:
parent
9f9dc5e19f
commit
5b9bf74787
54 changed files with 18050 additions and 3 deletions
46
src/muz/spacer/spacer_matrix.h
Normal file
46
src/muz/spacer/spacer_matrix.h
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
/*++
|
||||
Copyright (c) 2017 Arie Gurfinkel
|
||||
|
||||
Module Name:
|
||||
|
||||
spacer_matrix.h
|
||||
|
||||
Abstract:
|
||||
a matrix
|
||||
|
||||
Author:
|
||||
Bernhard Gleiss
|
||||
|
||||
Revision History:
|
||||
|
||||
|
||||
--*/
|
||||
#ifndef _SPACER_MATRIX_H_
|
||||
#define _SPACER_MATRIX_H_
|
||||
|
||||
#include "ast.h"
|
||||
|
||||
namespace spacer {
|
||||
|
||||
class spacer_matrix {
|
||||
public:
|
||||
spacer_matrix(unsigned m, unsigned n); // m rows, n colums
|
||||
|
||||
unsigned num_rows();
|
||||
unsigned num_cols();
|
||||
|
||||
rational get(unsigned i, unsigned j);
|
||||
void set(unsigned i, unsigned j, rational v);
|
||||
|
||||
unsigned perform_gaussian_elimination();
|
||||
|
||||
void print_matrix();
|
||||
void normalize();
|
||||
private:
|
||||
unsigned m_num_rows;
|
||||
unsigned m_num_cols;
|
||||
vector<vector<rational>> m_matrix;
|
||||
};
|
||||
}
|
||||
|
||||
#endif
|
||||
Loading…
Add table
Add a link
Reference in a new issue