Mentions légales du service

Skip to content

Rename VC for invariant preservation by refinement from "t'vc" to "t'refn'vc"

Benjamin Terra-Jorge requested to merge rename-invariant-refn-vcs into master

Avoid a collision with the VC for witnesses / non-triviality in certain cases. Example :

module A
  type pos = abstract { x : int }
  invariant { x >= 0 }
end

module B
  type pos = { x : int }
  invariant { x >= 0 }

  clone export A with type pos
end

which would fail with Symbol pos'vc is already defined in the current scope

Edited by Benjamin Terra-Jorge

Merge request reports