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

Documentation mentions non-existing symbols #575

Open
RalfJung opened this issue Dec 22, 2023 · 1 comment
Open

Documentation mentions non-existing symbols #575

RalfJung opened this issue Dec 22, 2023 · 1 comment

Comments

@RalfJung
Copy link

RalfJung commented Dec 22, 2023

In the section "Elimination principle", the docs say

Equations also automatically generates a mutually-inductive relation corre-
sponding to the graph of the programs, whose first inductive is named f_ind. It
automatically shows that the functions respects their graphs (lemma f_ind_fun)
and derives from this proof an elimination principle named f_elim.

This seems to not be correct. I cannot find neither f_ind nor f_ind_fun, only f_elim.

Here is the example code I used for testing:

From Equations Require Export Equations.

Inductive type : Type :=
  | Int
  | Bool
  | Unit
  | Fun (A B : type)
.

Equations type_size (A : type) : nat :=
  type_size Int := 1;
  type_size Bool := 1;
  type_size Unit := 1;
  type_size (Fun A B) := type_size A + type_size B + 1;
.

This prints

type_size is defined
type_size_equation_1 has type-checked, generating 1 obligation
Solving obligations automatically...
No more obligations remaining
type_size_equation_1 is defined
type_size_equation_2 has type-checked, generating 1 obligation
Solving obligations automatically...
No more obligations remaining
type_size_equation_2 is defined
type_size_equation_3 has type-checked, generating 1 obligation
Solving obligations automatically...
No more obligations remaining
type_size_equation_3 is defined
type_size_equation_4 has type-checked, generating 1 obligation
Solving obligations automatically...
No more obligations remaining
type_size_equation_4 is defined
type_size_graph is defined
type_size_graph_rect is defined
type_size_graph_rect is recursively defined
type_size_graph_correct has type-checked, generating 1 obligation
Solving obligations automatically...
No more obligations remaining
type_size_graph_correct is defined
type_size_elim has type-checked, generating 1 obligation
Solving obligations automatically...
No more obligations remaining
type_size_elim is defined
FunctionalElimination_type_size is defined
FunctionalInduction_type_size is defined

There is no type_size_ind or type_size_ind_fun.

@RalfJung
Copy link
Author

FWIW the docs also claim that "f_unfold" is being generated, which doesn't seem to be correct either.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant