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.
The following is failing for reasons unknown:
The strange thing is that replacing
type intlist is (int|(int[]) this)
withtype intlist is (int this)
and it's fine? The failing proof trace is:Whilst the successful trace is:
The difference is that this is being inferred in the former trace:
69. xs is int[] (Eq-S 52)
... eh?UPDATE: this is coming from
CongruenceClosure.applyEqualityTypeAxiom()
... but what?