我的目标如下:
maxr x0 x
我想做一个案例分析,考虑在x0是最大的情况下发生的情况,以及x是最大的情况。这在ssreflect中是可能的吗?
通常,它将类似于(例如,使用if语句)。
have [ something | something'] := ifP
但是,我无法找到适当的语法来使用max进行案例分析。
发布于 2022-06-21 07:36:52
您可以使用lerP
或ltrP
Check lerP.
(*
lerP
: forall (R : realDomainType) (x y : R),
ler_xor_gt (R:=R) x y (minr y x) (minr x y)
(maxr y x) (maxr x y) `|(x - y)%R| `|(y - x)%R|
(x <= y)%R (y < x)%R
*)
在行动中:
From mathcomp Require Import all_ssreflect all_algebra.
Import Num.Def Num.Theory.
Goal forall a b : int, maxr a b = a.
move=> a b.
case: lerP.
(*
2 goals (ID 4070)
a, b : int
============================
(a <= b)%R -> b = a
goal 2 (ID 4071) is:
(b < a)%R -> a = a
*)
Abort.
我在Search maxr.
中找到了它们,这不是最快的方法(它显示了几个结果),但至少它有效。
https://stackoverflow.com/questions/72694848
复制相似问题