Variables A B : Prop.
Theorem proj1 : A /\ B -> A.
Чтобы научиться, я пытаюсь доказать эту теорему, явно записав проверочный член с использованием and_ind
.
Я бы предположил, что правильный термин для доказательства равен
fun (H : A /\ B) => and_ind A B A (fun a _ => a) H
Но возникает ошибка, и вместо этого правильный термин равен
fun (H : A /\ B) => and_ind (fun a _ => a) H
Я не знаюЯ не понимаю этого.Определение and_ind
:
and_ind =
fun (A B P : Prop) (f : A -> B -> P) (a : A /\ B) => match a with
| conj x x0 => f x x0
end
: forall A B P : Prop, (A -> B -> P) -> A /\ B -> P
Как из этого видно, что параметры (A B P : Prop)
должны быть пропущены?
Правило "приложения"
![App rule](https://i.stack.imgur.com/q4JNl.png)
из Справочного руководства, похоже, ясно указывает на то, что количественные переменные должны быть явно "созданы" с использованием синтаксиса приложения функции, который я пробовал.