Skip to main content
14 events
when toggle format what by license comment
Mar 1 at 7:49 answer added James McKinna timeline score: 7
Mar 1 at 6:59 history edited Mike Shulman CC BY-SA 4.0
with indices, it seems that more extensive permutation of the context may be needed
Feb 29 at 22:07 comment added Andrej Bauer Yes, I realized that was the case after reading Meven's answer.
Feb 29 at 22:01 comment added Mike Shulman @AndrejBauer Agda only has pattern-matching on variables. Is it not general enough? To match against an arbitrary term, you just define a general function by of a variable by pattern-matching and then apply the function to the term.
Feb 29 at 21:31 comment added Andrej Bauer @MikeShulman: Do you expect the special case of n a variable to be generally useful, or do you have a special case in mind that you care about? A general proof assistant just wouldn't bother worrying about your example, because it's not general enough.
Feb 29 at 21:30 comment added Andrej Bauer @MevenLennon-Bertrand: Your example shows that there is too little deductive power (can't deduce x = y from suc x = suc y), not that equalities themselves are too weak (you managed just fine using them to explain what you want).
Feb 29 at 18:09 comment added Mike Shulman @MevenLennon-Bertrand Of course, but in that case my pseudo-syntax is not expressive enough, since you need to specify the motive by hand. As you pointed out in the last paragraph of your answer, you can't in general expect the proof assistant to guess it, because higher-order unification is undecidable.
Feb 29 at 18:06 comment added Meven Lennon-Bertrand What do you mean? Surely you can do induction with a dependent motive, even when the argument is not a variable?
Feb 29 at 16:35 comment added Mike Shulman @AndrejBauer Restricting to n being a variable is what allows the motive to be refined in the branches. Otherwise you have only a recursion principle, not an induction principle.
Feb 29 at 15:53 history became hot network question
Feb 29 at 11:01 comment added Meven Lennon-Bertrand The problem with judgmental equalities is that they are slightly too weak in this context, because they are a priori not injective: in many of these cases, you get equations like suc x = suc y, and you really want to be able to conclude x = y instead. This kind of injectivities is an important step of the work Equations or Program do in Coq.
Feb 29 at 10:59 answer added Meven Lennon-Bertrand timeline score: 5
Feb 29 at 8:32 comment added Andrej Bauer The general case here is that n is an expression, not a variable. Is there some reason you are specializing to a variable only? I do not know how existing proof assistants do it, but precisely for this sort of reason Andromeda (and finitary type theories that it's based on) allows judgemental equations in contexts.
Feb 29 at 7:49 history asked Mike Shulman CC BY-SA 4.0