Coq - (a \ / b \ / c)=((a \ / b)\ / c)

时间:2014-04-29 00:06:57

标签: coq

我正在使用半环,并且为了证明某些结构是实际的半环,我必须证明它们尊重某些属性,例如关联性。

对于半环(Bool, \/, /\, False, True),我可以证明以下陈述吗?

forall a b c : Prop, (a \/ b \/ c) = ((a \/ b) \/ c)

我的问题在于表达式的两个成员之间的相等性。我会选择<->而不是=,但我对semirings的定义仅使用=

它仍然是可证明的吗?或者我是否必须根据“基于命题逻辑的”半环的特定情况调整我的半环的定义?

2 个答案:

答案 0 :(得分:1)

例如,通过案例分析,这绝对可以证明。我认为,你这样做是有问题的,因为你错误地制定了定理。 a b和c应该是Bool not Prop。

如果是Prop,它可以通过反身性策略证明(如果/是左关联的)。

答案 1 :(得分:0)

我不知道Coq,但这显然是直觉上可证明的,因此必须有办法完成它。