Skip to content
  • Rodolphe Lepigre's avatar
    Make RefinedC more user-friendly with several changes. · f81e3fce
    Rodolphe Lepigre authored
    The first change concern the syntax of constraints in annotations. The following is now allowed:
    - [own l : ty] (previously written [l @ &own<ty>]),
    - [shr l : ty] (previously written [l @ &shr<ty>]),
    - [frac β l : ty] (previously written [l @ &frac<β, ty>]).
    - The old notations have been removed.
    
    The second change is some renaming around singleton types and layouts:
    - [singleton_val] is now called [value],
    - [singleton_place] is now called [place],
    - [LPtr] is now called [void_ptr] and is accessed with notation [void*],
    - [LVoid] is now called [void_layout].
    - The front end now accepts `void*` as an identifier.
    
    The last change introduces a new Coq scope called [printing_sugar] that is only opened at the beginning of proofs in generated proof files. It defines printing notations intended at making the output of the tool closer to the syntax of the front end. In particular it defines the following notations:
    - [own l : ty], [shr l : ty], [frac {β} l : ty],
    - [uninit<ly>], [value<ly, v>], [place<l>], [&own<ty>], ...
    - For each user-defined types a similar printing sugar is defined automatically.
    f81e3fce