The proof in question can be found here. At the current state, I would like to unfold eqvid and eqvneg in hypothesis eqveq, in order to simplify the projection and obtain a contradictory equality between two different functions. However, these two terms were synthesized as subgoals using the assert tactic, and it seems that the current environment bears no memory of the values of the terms. I know that I could write the two terms manually, but that would be quite cumbersome in my opinion. Is there a more elegant way to recover the definitions generated in solving the subgoals?
Unfolding terms created with `assert` in Coq
239 Views Asked by Michele De Pascalis At
1
There are 1 best solutions below
Related Questions in COQ
- CoqIDE loadpath error for ssreflect
- How to assign a natural number to variable in Coq?
- Handling let in hypothesis
- Sum of exponents with same base
- How to run Athena | Coq | Isabelle codes remotely?
- Is equality decidable on any coinductive type?
- Coq "convoy pattern"
- In coq, how to do "induction n eqn: Hn" in a way that doesn't mess up the inductive hypothesis?
- Pattern matching multiple constructors in a single clause in Coq
- How to use Coq GenericMinMax to prove facts about the reals
- what does the colon greater than sign mean in coq
- Subtyping in Coq
- How to write coq definitions with "subtypes"
- Stronger completeness axiom for real numbers in Coq
- When is the first input to `list_rec` not a constant function?
Related Questions in COQ-TACTIC
- How do you selectively simplify arguments to each time a function is called, without evaluating the function itself?
- Check for evars in a tactic that returns a value
- Proof of the application of a Substitution on a term
- Coq contradiction in hypotheses
- Simplifying Subformulas in Coq
- is there any tactic in Coq that can transform a bool expression to a Prop one?
- Coq error: Unable to unify "true" with "is_true (0 < a - b - 3)"
- If two constructor expressions of an inductive type are equal in Coq, can I do rewriting based on their corresponding arguments?
- Can I use destruct here given the constraint I have for index range of a list?
- Take a conjunction of two hypotheses and create a new hypothesis in Coq
- How can I build a list of bytes from its specification in Coq
- How to prove that the subsequence of an empty list is empty?
- Inductive proposition for sublists in Coq
- Coq unable to unify -- how to change hypothesis?
- How to apply a constructor in an hypothesis?
Related Questions in HOMOTOPY-TYPE-THEORY
- How to define higher inductive types in Z3
- Importing HoTT library in Coq
- Equality between paths
- Is the univalence axiom injective?
- Interval extensionality?
- How to prove that the defining equations of the recursor for N hold propositionally using the induction principle for N in Agda?
- Unfolding terms created with `assert` in Coq
- Is this formulation of Modulo a Set?
- Why does universe level restriction behave differently between inductive family and parameterized inductive type without axiom K in agda
- In scala, what can be done to prevent compiler from cyclic summoning of implicit premises? And how to avoid them
- In cubical type theory, why are there function types that accept intervals as arguments when there are already a path type?
- Constructing a path with constraints in an isSet type
- Constructing squares with constraints in an isSet type
- How do I handle the higher inductive cases when defining functions on HITs?
- coq code of the article Homotopy type theory and Voevodsky's univalent foundations
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Incant:
pose/setare transparent whileassertis not. The_becomes a new existential variable (or unification variable in more standard parlance). A normalposewould fail because it can't solve for the variable, buteposeskips the check. Existential variables aren't usually attacked by tactics directly (they are solved for by unification), so they are automatically shelved, butunshelvetakes all the evars made by the tactic it controls and turns them into goals.Replace the asserts with this (you could make a custom notation if you wanted) and
finishes your proof.
Note that the proof state gets rapidly unreadable if you do this. A trick to avoid that is to have
And use
instead. Then the hypotheses will not show the messy term until you reveal it.