GeezerVisonThe World Wide Web, restored to 800 pixels of glory. | ||||||||||||||||||
| Home|About|Gaming cabinet|Archives|How it works|Starter sites | ||||||||||||||||||
GeezerVison is showing liquid-java.github.io — Understanding Refinement Errors Understanding Refinement ErrorsConsider the following refinement error:
Each part gives a different piece of information:
The error message also includes the absolute path of the file and line where the error was reported, which can be clicked to jump the source code location in the editor. SubtypingTo verify if a refinement holds, LiquidJava checks if the inferred refinement is a subtype of the expected one. This means that every value that satisfies the inferred refinement must also satisfy the expected one. For example, the predicate CounterexamplesRefinement errors may provide a counterexample, which is a concrete assignment of values that makes the verification fail. In the example above:
So the counterexample explains exactly why LiquidJava cannot prove that Internal VariablesNames such as LiquidJava converts expressions into an internal A-normal form (ANF) before verification. Every time it creates a fresh internal variable during that process, the counter is incremented. This is why you may see names such as The following example shows how the internal variables are created in the typechecking: | ||||||||||||||||||
| You are visitor 01402520 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |