Вы пытаетесь доказать следующее:
Lemma if_trans :
forall (P Q R : Prop),
(P -> Q) /\ (Q -> R) -> (P -> R).
, но вы вводите P, Q, R
доказательство P -> Q
и Q -> R
, поэтому вам остается доказать P -> R
. Таким же образом вы можете использовать intro p
, чтобы получить p : P
в качестве дополнительного предположения, а затем доказать R
.
Для суммирования у вас есть
P, Q, R : Prop
E1 : P -> Q
E2 : Q -> R
p : P
===============
R
после такти c
intros P Q R [E1 E2] p.
(обратите внимание на дополнительные p
).
Возможно, тогда будет понятнее, как это доказать.
Когда вы используете apply E2 in E1
он в основном видит, что E1
доказывает Q
при условии, что P
имеет место, поэтому он применяет E2 : Q -> R
в нем для получения R
и спрашивает на стороне, что вы предоставляете доказательства для P
.
На ваш второй вопрос, если вы примените свою лемму, он попросит (P -> Q) /\ (Q -> P)
, которую вы можете доказать с помощью split
, а затем assumption
. Вы не должны пытаться объединить P -> Q
и Q -> R
в (P -> Q) /\ (Q -> P)
, но если вам действительно нужно, вы можете использовать pose proof (conj H1 H2) as H
.