рд╕рд░рд▓реАрдХрд░рдг рдкреНрд░рдорд╛рдг
рдЗрд╕рд▓рд┐рдП, рдкрд┐рдЫрд▓реЗ рднрд╛рдЧреЛрдВ рдореЗрдВ рд╣рдордиреЗ рдЙрдирдХреЗ рдКрдкрд░ рдирдП рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдФрд░ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ред рдпрд╣ рд╕рдордп рд╣реИ рдХрд┐ рдХреИрд╕реЗ рдЕрдкрдиреЗ рдЧреБрдгреЛрдВ рдФрд░ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд╕рд╛рдмрд┐рдд рдХрд░рдирд╛ рдФрд░ рд╕рд╛рдмрд┐рдд рдХрд░рдирд╛ рд╣реИред рдПрдХ рдЕрд░реНрде рдореЗрдВ, рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдРрд╕рд╛ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рдЪреБрдХреЗ рд╣реИрдВ - рдкрд╣рд▓реЗ рднрд╛рдЧ рдореЗрдВ рд╣рдордиреЗ рдХреАрд╡рд░реНрдб
Example
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреА рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рд╛ рд▓рд┐рдЦреА рдереА, рдЬрд┐рд╕рдореЗрдВ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рддрд░реНрдХреЛрдВ рдкрд░ рд▓рд╛рдЧреВ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдХрдерди рд╢рд╛рдорд┐рд▓ рдереЗред рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, Coq рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЛ рд╕рд░рд▓ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕рдорд╛рдирддрд╛ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреЗ рдмрд╛рдПрдВ рдФрд░ рджрд╛рдПрдВ рдкрдХреНрд╖реЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИред
рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕рд╛рдХреНрд╖реНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд╛рд░реНрдпреЛрдВ рдХреА рдПрдХ рд╡рд┐рд╕реНрддреГрдд рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╣рдо рджрд┐рдЦрд╛рддреЗ рд╣реИрдВ рдХрд┐ 0 рдмрд╛рдИрдВ рдУрд░ рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП рдПрдХ рддрдЯрд╕реНрде рддрддреНрд╡ рд╣реИ:
рдкреНрд░рдореЗрдп plus_O_n: forall n: nat, 0 + n = nред
рд╕рдмреВрддред
simplред рд░рд┐рдлреНрд▓реЗрдХреНрд╕рд┐рд╡рд┐рдЯреАред QEDред
рддреБрд▓рдирд╛ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ
reflexivity
рдХрдорд╛рдВрдб рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рджреЛрдиреЛрдВ рдкрдХреНрд╖реЛрдВ рдХреЛ рд╕рд░рд▓ рдХрд░рддрд╛ рд╣реИред
рдХреАрд╡рд░реНрдб
simpl
рдФрд░
reflexivity
, рд░рдгрдиреАрддрд┐ рдХреЗ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВред рд░рдгрдиреАрддрд┐ рдХрд╛ рдореБрдЦреНрдп рд▓рдХреНрд╖реНрдп рдХреЛрдХ рдХреЛ рдпрд╣ рдмрддрд╛рдирд╛ рд╣реИ рдХрд┐ рдЖрд╡рд╢реНрдпрдХ рдмрдпрд╛рдиреЛрдВ рдХреА рд╢реБрджреНрдзрддрд╛ рдХреЛ рдХреИрд╕реЗ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПред рдХрд╛рд░реНрдпреЛрдВ рдХреА рдмрдЬрд╛рдп рд╕рдВрдХреАрд░реНрдг рд╕реАрдорд╛ рд╣реИ, рдЬрд┐рд╕рдХреА рд╢реБрджреНрдзрддрд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕рд╛рдмрд┐рдд рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред рдЖрдЗрдП рд╣рдо рд╕рд╛рдмрд┐рдд рдХрд░реЗрдВ рдХрд┐ 2 + 2 = 4:
Coq <Lemma using_auto: 2 + 2 = 4
1 рд╕рдмрдЬреЗрд▓
============================
2 + 2 = 4
using_auto <рдкреНрд░рдорд╛рдгред рдСрдЯреЛред QEDред
рдкреНрд░рдорд╛рдг рдкреВрд░рд╛ рд╣реБрдЖред
рдСрдЯреЛред
using_auto рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ
рдЕрдзрд┐рдХрд╛рдВрд╢ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рд░рдгрдиреАрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред
рд░рдгрдиреАрддрд┐ intros
рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬреЛ рддрд░реНрдХреЛрдВ рдХреЗ рдПрдХ рд╕реЗрдЯ рдкрд░ рдлрд╝рдВрдХреНрд╢рдВрд╕ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ, рд╣рдо рдЙрди рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЗ рдЧреБрдгреЛрдВ рдХреЛ рд╕рд╛рдмрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд░реБрдЪрд┐ рд▓реЗрдВрдЧреЗ рдЬрд┐рдирдХреЗ рдирд┐рд░реНрдорд╛рдг рдореЗрдВ рдЧрдгрд┐рддреАрдп рдХреНрд╡рд╛рдВрдЯрд┐рдлрд╛рдпрд░ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "рд╕рднреА рдкреНрд░рд╛рдХреГрддрд┐рдХ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП
n
") рдФрд░ рдкрд░рд┐рдХрд▓реНрдкрдирд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "
a = b
")ред
intros
рд░рдгрдиреАрддрд┐
intros
рдорд╛рддреНрд░рд╛рддреНрдордХ рдФрд░ рдкрд░рд┐рдХрд▓реНрдкрдирд╛ рдХреЛ рдмрдпрд╛рдиреЛрдВ рд╕реЗ рд╡рд░реНрддрдорд╛рди рддрд░реНрдХ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред рдЖрдЗрдП рд╣рдо рдпрд╣ рд╕рд╛рдмрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдХрд┐рд╕реА рднреА рдкреНрд░рд╛рдХреГрддрд┐рдХ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдмрд╛рдПрдВ рдЧреБрдгрд╛ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╢реВрдиреНрдп рд╣реИ:
рдкреНрд░рдореЗрдп рдмрд╣реБ_рд░реЛрдЬреЛ: forall n: nat, 0 * n = 0ред
рд╕рдмреВрддред рдЗрдВрдЯреНрд░реЛ рдПрдиред рд░рд┐рдлреНрд▓реЗрдХреНрд╕рд┐рд╡рд┐рдЯреАред QEDред
рдкреНрд░рдорд╛рдг рджреЗрдирд╛
рдПрдХ рдФрд░ рджрд┐рд▓рдЪрд╕реНрдк рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:
рдкреНрд░рдореЗрдп plus_id_example: forall nm: nat,
n = m ->
n + m = m + nред
рдХрд┐рд╕реА рднреА
n
рдФрд░
m
рд╕рдВрдмрдВрдз рдореЗрдВ рдПрдХ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдХрдерди рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдФрд░ рд╕рд┐рджреНрдз рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдпрд╣ рдкреНрд░рдореЗрдп рдЕрдзрд┐рдХ рд╕рдВрдХреАрд░реНрдг рдЧреБрдгреЛрдВ рдХреА рдмрд╛рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ
n = m
рд▓рд┐рдП рдзрд╛рд░рдг рдХрд░рддреЗ рд╣реИрдВред рдЪреВрдВрдХрд┐
n
рдФрд░
m
рдордирдорд╛рдиреА рд╕рдВрдЦреНрдпрд╛ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрд╕реЗ рд╕рд╛рдмрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░рд▓реАрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рд╣рдо рд╕рд╛рдмрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд╕реНрдерд┐рддрд┐ рдореЗрдВ
n
рд╕рд╛рде
m
рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ (
n = m
рдорд╛рдирддреЗ рд╣реБрдП), рд╣рдореЗрдВ рд╕рд╣реА рдкрд╣рдЪрд╛рди рдорд┐рд▓рддреА рд╣реИред рдХреЛрдХ рдХреЛ рдЗрд╕ рддрд░рд╣ рдХреЗ рдмрджрд▓рд╛рд╡ рдХреЗ рд▓рд┐рдП рдмрддрд╛рдиреЗ рд╡рд╛рд▓реА рд░рдгрдиреАрддрд┐ рдХреЛ
rewrite
рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ:
рд╕рдмреВрддред
intros n mред
рдЗрдВрдЯреНрд░реЛ рдПрдЪред
рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ -> рдПрдЪред
рд░рд┐рдлреНрд▓реЗрдХреНрд╕рд┐рд╡рд┐рдЯреАред QEDред
рдпрд╣рд╛рдБ рдХреНрдпрд╛ рд╣реБрдЖ, рдЗрд╕реЗ рдмреЗрд╣рддрд░ рдврдВрдЧ рд╕реЗ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЕрддреНрдпрдзрд┐рдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП CoqIDE рдХреЛ рдЪрд▓рд╛рдиреЗ рдФрд░ рдЗрд╕ рдкреНрд░рдорд╛рдг рдХреЛ рдПрдХ-рдПрдХ рдХрд░рдХреЗ рджреЗрдЦрдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдБред
рдЗрд╕рд▓рд┐рдП, рд╣рдо рдкреНрд░рдореЗрдп рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдкреНрд░рдорд╛рдг рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ:

рдЕрдЧрд▓рд╛ рдХрджрдо рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдХреНрд╡рд╛рдВрдЯрд┐рдлрд╛рдпрд░ рдФрд░ рдкрд░рд┐рдХрд▓реНрдкрдирд╛ рд╕реЗ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдкреНрд░рдорд╛рдг рдХреЗ рд╡рд░реНрддрдорд╛рди рд╕рдВрджрд░реНрдн рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рд╣реИ (рдХреЛрдХреНрд╡рд┐рдб рдХреЗ рдКрдкрд░реА рджрд╛рд╣рд┐рдиреЗ рд╣рд┐рд╕реНрд╕реЗ рдореЗрдВ рд╣рдо рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдкреНрд░рдорд╛рдг рдХрд╛ рд╡рд░реНрддрдорд╛рди рд╕рдВрджрд░реНрдн рдХреИрд╕реЗ рдмрджрд▓рддрд╛ рд╣реИ):

рд╣рдо рдкреНрд░рдорд╛рдг рдХреЗ рд╡рд░реНрддрдорд╛рди рдЙрджреНрджреЗрд╢реНрдп рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрддреЗ рд╣реИрдВ:

рд╣рдо рдкреНрд░рдорд╛рдг рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдХрд░ рд╕рдорд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ:

рдирд┐рд╖реНрдХрд░реНрд╖
рдЕрдЧрд▓реЗ рднрд╛рдЧ рдореЗрдВ, рд╣рдо рдЕрдзрд┐рдХ рдЙрдиреНрдирдд рдпреБрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдЬрд╛рдиреЗрдВрдЧреЗ рдФрд░ Coq рдореЗрдВ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВрдЧреЗред рдПрдХ рдмрд╛рд░ рдлрд┐рд░, рдореИрдВ рдкрд╛рдардХ рдХрд╛ рдзреНрдпрд╛рди рдХреЛрдХрд┐рджреЗ рдореЗрдВ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рд▓реЙрдиреНрдЪ рдХрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рдорд╣рддреНрд╡ рдкрд░ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рддрд╛ рд╣реВрдВред
рдкрд┐рдЫрд▓реЗ рднрд╛рдЧреЛрдВ рдХреЗ рд▓рд┐рдВрдХ:
- рдкреНрд░рд╛рд░рдВрдн рдХрд░реЗрдВ ред
- рдкреНрд░реЗрд░рдХ рдкрд░рд┐рднрд╛рд╖рд╛рдПрдБ ред