Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Verify flattening of the abstract stack #624

Open
1 of 3 tasks
clarus opened this issue Nov 13, 2024 · 0 comments
Open
1 of 3 tasks

Verify flattening of the abstract stack #624

clarus opened this issue Nov 13, 2024 · 0 comments
Labels

Comments

@clarus
Copy link
Collaborator

clarus commented Nov 13, 2024

The type-checker uses an AbstractStack.t that is a stack of types instead of a stack of values as used in the interpreter. It is implemented by grouping the same types with a counter:

Module AbstractStack.
  Record t (A : Set) : Set := {
    values : list (Z * A);
    len : Z;
  }.

The goal of this task is to show that for the primitive operations, such as pop and push, it behaves as a stack of type list A where we do not group the elements.

The proofs to complete are in the file https://github.com/formal-land/coq-of-rust/blob/main/CoqOfRust/move_sui/proofs/move_abstract_stack/lib.v and marked as Admitted:

  • flatten_push_n
  • flatten_pop_eq_n
  • flatten_pop_any_n
@clarus clarus added the Move label Nov 13, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant