Обратите внимание, что ваши первые две аксиомы - это действительно теоремы, доказуемые пустым совпадением с образцом. (Конструкторы индуктивных типов предполагаются сюръективными.) Точки в концах этих строк указывают, что объявление закончено, что тело не ожидается. Внутренне, Лин повторяет доказательство rel Fintype.c Fintype.a
и показывает, что каждый случай структурно невозможен.
lemma trivial1 : ¬ rel Fintype.c Fintype.a.
lemma trivial2 : ¬ rel Fintype.b Fintype.c.
Ваши вторые две аксиомы противоречивы, что делает доказательство вашей теоремы простым, но неинтересным.
theorem simple17: ∀ x y : Fintype, nw_o_2 Fintype rel x y → pw_o_2 Fintype rel x y :=
false.elim (trivial3 _ (rel.r2 _ trivial))
Я не уверен, что вы определили rel
так, как вы хотели. Второй и третий конструкторы эквивалентны просто rel Fintype.a Fintype.c
и rel Fintype.c Fintype.b
соответственно.
lemma rel_a_c : rel Fintype.a Fintype.c :=
rel.r2 true trivial
lemma rel_c_b : rel Fintype.c Fintype.b :=
rel.r3 false not_false