Whiley / WhileyTheoremProver

The Whiley Theorem Prover (WyTP) is an automatic and interactive theorem prover designed to discharge verification conditions generated by the Whiley Compiler. WyTP operates over a variant of first-order logic which includes integer arithmetic, arrays and quantification.
Apache License 2.0
8 stars 2 forks source link

OpenRecords in RecordEqualityCaseAnalysis #115

Open DavePearce opened 7 years ago

DavePearce commented 7 years ago

At the moment, RecordEqualityCaseAnalysis does not properly support open records. For example, the following should not verify (though currently does):

type Point is ({int x, int y} r)
type OpenPoint is ({int x, int y, ... } r)

assert:
    forall(Point p, OpenPoint q):
        if:
            p == {x: 1, y: 2}
            q.x == 1
            q.y == 2
        then:
            p == q

This should not verify because q could have arbitrary many additional fields.