首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Coq/SSReflect:(x < y) + (x == y) + (y < x)?

Coq/SSReflect:(x < y) + (x == y) + (y < x)?
EN

Stack Overflow用户
提问于 2021-09-27 17:17:53
回答 1查看 64关注 0票数 3

在vanilla Coq中,我会写道

代码语言:javascript
复制
Require Import Coq.Arith.Arith.
Goal nat -> nat -> False.
  intros n m.
  destruct (lt_eq_lt_dec n m) as [[?|?]|?].

获得三个目标,一个是n < m,一个是n = m,还有一个是m < n。在ssreflect中,我会从

代码语言:javascript
复制
From Coq.ssr Require Import ssreflect ssrbool.
From mathcomp.ssreflect Require Import eqtype ssrnat.
Goal nat -> nat -> False.
  move => n m.

在ssreflect中,将这种情况分为三种情况的标准/规范方法是什么?对于n < mn == mm < n

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-27 17:31:25

您可以使用ltngtP

代码语言:javascript
复制
From mathcomp Require Import ssreflect ssrfun ssrbool eqtype ssrnat.
Goal nat -> nat -> False.
  move => n m.
  case: (ltngtP n m) => [n_lt_m|m_lt_n|n_eq_m].

根据ssreflect风格,该引理自动简化了目标中的比较函数,如n < mn == m等。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69350778

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档