coq-club AT inria.fr
Subject: The Coq mailing list
List archive
- From: Adam Chlipala <adam AT chlipala.net>
- To: Yakov Zaytsev <yakov AT yakov.cc>
- Cc: coq-club AT inria.fr
- Subject: Re: [Coq-Club] omega's term
- Date: Fri, 19 Mar 2010 08:41:39 -0400
Yakov Zaytsev wrote:
I used omega to solve this inequality
Lemma zgtz : not (0 > 0).
Now I can't get what does resulting term mean
Require Import Arith.
(*Require Import Omega.*)
Require Import Coq.ZArith.auxiliary. (* Zgt_left *)
Require Import Coq.ZArith.Znat. (* inj_gt *)
Parameter H: 0 > 0.
Definition left := Zgt_left 0 0 (inj_gt 0 0 H).
Definition zgtz := left (eq_refl Gt).
Left doesn't have arrow type, does it!? Why is zgtz well-typed then?
In fact, [left] _does_ have a function type. Its type is a call to [Zle], which evaluates to an expression built with [<>], which evaluates to the negation of an [=] fact. A negation is encoded as a function returning [False] proofs.
- [Coq-Club] omega's term, Yakov Zaytsev
- Re: [Coq-Club] omega's term, Adam Chlipala
- Re: [Coq-Club] omega's term,
Yakov Zaytsev
- Re: [Coq-Club] omega's term, Adam Chlipala
- Re: [Coq-Club] omega's term,
Yakov Zaytsev
- Re: [Coq-Club] omega's term, Adam Chlipala
Archive powered by MhonArc 2.6.16.