Skip to Content.
Sympa Menu

coq-club - [Coq-Club] A simpl question

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

[Coq-Club] A simpl question


Chronological Thread 
  • From: Kevin Sullivan <sullivan.kevinj AT gmail.com>
  • To: "coq-club AT inria.fr" <coq-club AT inria.fr>
  • Subject: [Coq-Club] A simpl question
  • Date: Thu, 23 Jan 2014 11:12:09 -0500

I'm trying to convince myself that I fully understand the differences between compute and simpl. I'm not yet convinced. Maybe someone here can help.

Starting with this:

Theorem t2: forall n: nat, (plus n O) = n.
Proof.
induction n as [ | n'].

Applying simpl gives me what I need: S (plus n' O) = S n'.

Applying compute, which is "more powerful" (CPDT), gives me this:

S
  ((fix plus (n1 n2 : nat) {struct n1} : nat :=
      match n1 with
      | O => n2
      | S n'0 => S (plus n'0 n2)
      end) n' O) = S n'

I'm not immediately seeing how to get from there back to this: S (plus n' O) = S n'.

In particular, applying the various cbv variants does't seem to help.

Is simpl doing something that compute isn't?

Kevin



Archive powered by MHonArc 2.6.18.

Top of Page