рдЗрд╕ рдкреЛрд╕реНрдЯ рдореЗрдВ, рд╣рдо Arend рдкрд░ рдирд┐рд░реНрднрд░ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдирд╡ рдЬрд╛рд░реА JetBrains рднрд╛рд╖рд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗ (рднрд╛рд╖рд╛
рдЧреЗрдЯрд┐рдВрдЧ рдХрд┐рд░рд╛рдП рдХреЗ рдирд╛рдо
рдкрд░ рд╣реИ )ред рдпрд╣ рднрд╛рд╖рд╛ рдкрд┐рдЫрд▓реЗ рдХреБрдЫ рд╡рд░реНрд╖реЛрдВ рдореЗрдВ
JetBrains рд░рд┐рд╕рд░реНрдЪ рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдХрд╕рд┐рдд рдХреА рдЧрдИ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдПрдХ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░реВрдк рд╕реЗ
github.com/JetBrains рдкрд░ рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди Arend рдХреА рдкреВрд░реА рд░рд┐рд▓реАрдЬрд╝ рдХреЗрд╡рд▓ рдЗрд╕ рд╕рд╛рд▓ рдЬреБрд▓рд╛рдИ рдореЗрдВ рд╣реБрдИред
рд╣рдо рдпрд╣ рдмрддрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдЕрд░реНрдиреЗрдВрдб рдХреИрд╕реЗ рдирд┐рд░реНрднрд░ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдФрдкрдЪрд╛рд░рд┐рдХ рдЧрдгрд┐рдд рдХреА рдореМрдЬреВрджрд╛ рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рд╕реЗ рдЕрд▓рдЧ рд╣реИ, рдФрд░ рдЕрдм рдХреНрдпрд╛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЗрд╕рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИред рд╣рдо рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕ рд▓реЗрдЦ рдХреЗ рдкрд╛рдардХ рдЖрдо рддреМрд░ рдкрд░ рдЖрд╢реНрд░рд┐рдд рдкреНрд░рдХрд╛рд░реЛрдВ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЛрдВрдиреЗ рдХрдо рд╕реЗ рдХрдо рдПрдХ рднрд╛рд╖рд╛ рдХреЛ рдЖрд╢реНрд░рд┐рдд рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕реБрдирд╛ рд╣реИ: рдПрдЬрдбрд╛, рдЗрджрд░рд┐рд╕, рдХреЛрдХ, рдпрд╛ рд▓реАрдиред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╣рдо рдкрд╛рдардХ рд╕реЗ рдПрдХ рдЙрдиреНрдирдд рд╕реНрддрд░ рдкрд░ рдирд┐рд░реНрднрд░ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред
рд╕рд░рд▓рддрд╛ рдФрд░ рд╕рдВрдХреНрд╖рд┐рдкреНрддрддрд╛ рдХреЗ рд▓рд┐рдП, Arend рдФрд░ homotopy рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣рдорд╛рд░реА рдХрд╣рд╛рдиреА рд╕рд░рд▓рддрдо рд╕реЙрд░реНрдЯрд┐рдВрдЧ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ Arend рдкрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде рд╣реЛрдЧреА - рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рднреА, рдЖрдк Arend рдФрд░ Agda рдФрд░ Coq рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдорд╣рд╕реВрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЖрд╢реНрд░рд┐рдд рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдкрд┐рдд Habr├й рдкрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрдИ рд▓реЗрдЦ рд╣реИрдВред рдЖрдЗрдП Agda рдкрд░ рдХреНрд╡рд┐рдХреЙрд░реНрдЯ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЫрдВрдЯрд╛рдИ рд╕реВрдЪрд┐рдпреЛрдВ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ
рдРрд╕рд╛ рдПрдХ рд▓реЗрдЦ рд╣реИ ред рд╣рдо рдЖрд╡реЗрд╖рдг рдЫрдБрдЯрд╛рдИ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рд▓рд╛рдЧреВ рдХрд░реЗрдВрдЧреЗред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо Arend рднрд╛рд╖рд╛ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рди рдХрд┐ рдЫрдБрдЯрд╛рдИ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдкрд░ред
рдЕрддрдГ, рдЕрд░реНрдиреЗрдВрдб рдФрд░ рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рдкрд░ рдирд┐рд░реНрднрд░ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдореБрдЦреНрдп рдЕрдВрддрд░ рддрд╛рд░реНрдХрд┐рдХ рд╕рд┐рджреНрдзрд╛рдВрдд рд╣реИ, рдЬрд┐рд╕ рдкрд░ рдпрд╣ рдЖрдзрд╛рд░рд┐рдд рд╣реИред Arend рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЦреЛрдЬреЗ рдЧрдП
V. Vvvodsky homotopy type theory (
HoTT ) рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, Arend HoTT рдХреА рднрд┐рдиреНрдирддрд╛ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ рдЬрд┐рд╕реЗ "рд░рд┐рдХреНрддрд┐ рдХреЗ рд╕рд╛рде рдкреНрд░рдХрд╛рд░ рд╕рд┐рджреНрдзрд╛рдВрдд" рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕реНрдорд░рдг рдХрд░реЛ рдХрд┐ Coq рдЖрдЧрдордирд╛рддреНрдордХ рдирд┐рд░реНрдорд╛рдгреЛрдВ (рдкрдерд░реА рдХреЗ рдкреНрд░реЗрд░рдХ рдирд┐рд░реНрдорд╛рдгреЛрдВ) рдХреЗ рддрдерд╛рдХрдерд┐рдд рдХрд▓рди рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ, рдЬрдмрдХрд┐ рдЕрдЧрд╛рдбрд╛ рдФрд░ рдЗрджрд░рд┐рд╕
рдорд╛рд░реНрдЯрд┐рди-рд▓реЛрдл рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИрдВред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ Arend HoTT рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ, рдЗрд╕рдХреЗ рд╕рд┐рдВрдЯреИрдХреНрдЯрд┐рдХ рдХрдВрд╕реНрдЯреНрд░рдХреНрд╢рди рдФрд░ рдЯрд╛рдЗрдк рдЪреЗрдХрд┐рдВрдЧ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо (рдЯрд╛рдЗрдкрдЪреЗрдХрд░) рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд░реВрдк рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред рд╣рдо рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдЗрди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред
рдЖрдЗрдП рднрд╛рд╖рд╛ рдХреЗ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХреА рд╕реНрдерд┐рддрд┐ рдХрд╛ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред Arend рдХреЗ рд▓рд┐рдП IntelliJ IDEA рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд▓рдЧрдЗрди рд╣реИ, рдЬрд┐рд╕реЗ рд╕реАрдзреЗ IDEA рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЗ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдкреНрд▓рдЧрдЗрди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ Arend рдХреЗ рд╕рд╛рде рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рдлрд┐рд░ рднреА рдЖрдкрдХреЛ рдХреБрдЫ рднреА рдбрд╛рдЙрдирд▓реЛрдб рдФрд░ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЯрд╛рдЗрдк рдЪреЗрдХрд┐рдВрдЧ рдХреЗ рдЕрд▓рд╛рд╡рд╛, Arend plugin IDEA рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдЪрд┐рдд рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ: рдХреЛрдб рдХрд╛ рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдВрдЧ рдФрд░ рд╕рдВрд░реЗрдЦрдг, рд╡рд┐рднрд┐рдиреНрди рд░рд┐рдлреНрд▓реЗрдХреНрдЯрд░рд┐рдВрдЧ рдФрд░ рдЯрд┐рдкреНрд╕ рд╣реИрдВред Arend рдХреЗ рдХрдВрд╕реЛрд▓ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рднреА рд╣реИред рд╕реНрдерд╛рдкрдирд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╡рд░рдг
рдпрд╣рд╛рдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛
рд╣реИ ред
рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдХреЛрдб рдЙрджрд╛рд╣рд░рдг Arend Standard Library рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрд╕рдХреЗ рд╕реЛрд░реНрд╕ рдХреЛрдб рдХреЛ
рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддреЗ рд╣реИрдВред рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╕реЛрд░реНрд╕ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдХреЛ рдЖрдпрд╛рдд рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ IDEA рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдЖрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред Arend рдореЗрдВ, рд╣реЛрдореЛрдЯреЛрдкреА рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдФрд░ рд░рд┐рдВрдЧ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЗ рдХреБрдЫ рд╡рд░реНрдЧреЛрдВ рдХреЛ рдкрд╣рд▓реЗ рд╣реА рдФрдкрдЪрд╛рд░рд┐рдХ рд░реВрдк рджрд┐рдпрд╛ рдЬрд╛ рдЪреБрдХрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рд░рд┐рдВрдЧ-рдкреНрд░рдореЗрдп рдЧреБрдгреЛрдВ рдХреЗ рдкреНрд░рдорд╛рдгреЛрдВ рдХреЗ рд╕рд╛рде рддрд░реНрдХрд╕рдВрдЧрдд рд╕рдВрдЦреНрдпрд╛ Q рдХреА рд░рд┐рдВрдЧ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИред
рд╡рд┐рд╕реНрддреГрдд
рднрд╛рд╖рд╛ рдкреНрд░рд▓реЗрдЦрди , рдЬрд┐рд╕рдореЗрдВ рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрдИ рдмрд┐рдВрджреБрдУрдВ рдХреЛ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╕рдордЭрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдбреЛрдореЗрди рдореЗрдВ рднреА рд╣реИред рдЖрдк
рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдЪреИрдирд▓ рдореЗрдВ рд╕реАрдзреЗ Arend Developers рд╕реЗ рд╕рд╡рд╛рд▓ рдкреВрдЫ рд╕рдХрддреЗ рд╣реИрдВред
1. HoTT / Arend рдХрд╛ рдЕрд╡рд▓реЛрдХрди
рд╣реЛрдореЛрдЯреЛрдкреА рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╕рд┐рджреНрдзрд╛рдВрдд (рдпрд╛ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, HoTT) рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЕрдВрддрд░рдВрдЧ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╕рд┐рджреНрдзрд╛рдВрдд рд╣реИ рдЬреЛ рд╢рд╛рд╕реНрддреНрд░реАрдп рдорд╛рд░реНрдЯрд┐рди-рд▓реЛрдл рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд (MLTT, рдЬрд┐рд╕ рдкрд░ Agda рдЖрдзрд╛рд░рд┐рдд рд╣реИ) рдФрд░ рдЖрдЧрдордирд╛рддреНрдордХ рдирд┐рд░реНрдорд╛рдг рдкрдерд░реА (CIC, рдЬрд┐рд╕ рдкрд░ Coq рдЖрдзрд╛рд░рд┐рдд рд╣реИ) рд╕реЗ рднрд┐рдиреНрди рд╣реЛрддрд╛ рд╣реИ, рдЙрд╕реА рдХреЗ рд╕рд╛рде рдмрдпрд╛рдиреЛрдВ рдФрд░ рд╕реЗрдЯреЛрдВ рдореЗрдВ рддрдерд╛рдХрдерд┐рдд рдЙрдЪреНрдЪ рд╕рдорд░реВрдкрддрд╛ рд╕реНрддрд░ рдХреЗ рддрдерд╛рдХрдерд┐рдд рдкреНрд░рдХрд╛рд░ рд╣реЛрддреЗ рд╣реИрдВред
рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рд╣рдордиреЗ рдЕрдкрдиреЗ рдЖрдк рдХреЛ HoTT рдХреА рдиреАрдВрд╡ рдХреЛ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╕рдордЭрд╛рдиреЗ рдХрд╛ рд▓рдХреНрд╖реНрдп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ - рдЗрд╕ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЗ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП, рдкреВрд░реА рдкреБрд╕реНрддрдХ рдХреЛ рдлрд┐рд░ рд╕реЗ рдмреЗрдЪрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдЧрд╛ (
рдпрд╣ рдкреЛрд╕реНрдЯ рджреЗрдЦреЗрдВ)ред рд╣рдо рдХреЗрд╡рд▓ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ HoTT рдХреЗ рд╕реНрд╡рдпрдВрд╕рд┐рджреНрдзреЛрдВ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдПрдХ рд╕рд┐рджреНрдзрд╛рдВрдд, рдПрдХ рдЕрд░реНрде рдореЗрдВ, рд╢рд╛рд╕реНрддреНрд░реАрдп рдорд╛рд░реНрдЯрд┐рди-рд▓реЛрдл рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рдФрд░ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдХрдИ рд╕реНрд╡рдпрдВрд╕рд┐рджреНрдз рд╢рдмреНрдж рдЬрд┐рдиреНрд╣реЗрдВ рдкрд╣рд▓реЗ рдЕрддрд┐рд░рд┐рдХреНрдд рд░реВрдк рд╕реЗ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдерд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрд╛рд░реНрдпрд╛рддреНрдордХ рд╡рд┐рд▓рдХреНрд╖рдгрддрд╛) рдХреЛ HoTT рдореЗрдВ рдкреНрд░рдореЗрдп рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд┐рджреНрдз рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, HoTT рдореЗрдВ, рдХреЛрдИ рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдмрд╣реБрдЖрдпрд╛рдореА рд╣реЛрдореЛрдЯреЛрдкреА рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдкрдиреЗ рдХреБрдЫ рд╣реЛрдореЛрдЯреЙрдк
рд╕рдореВрд╣реЛрдВ рдХреЛ рднреА рдЧрд┐рди рд╕рдХрддрд╛ рд╣реИред
рд╣рд╛рд▓рд╛рдБрдХрд┐, HoTT рдХреЗ рдпреЗ рдкрд╣рд▓реВ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдЧрдгрд┐рддрдЬреНрдЮреЛрдВ рдХреЗ рд▓рд┐рдП рджрд┐рд▓рдЪрд╕реНрдк рд╣реИрдВ, рдФрд░ рдЗрд╕ рд▓реЗрдЦ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдпрд╣ рдмрддрд╛рдирд╛ рд╣реИ рдХрд┐ рдХреИрд╕реЗ HoTT- рдЖрдзрд╛рд░рд┐рдд Arend рдХреА рдЕрдЧреБрдбрд╛ / MLTT рдФрд░ Coq / CIC рдХреЗ рд╕рд╛рде рдЕрдиреБрдХреВрд▓рддрд╛ рдХреА рддреБрд▓рдирд╛ рдХрд┐рд╕реА рднреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рд░рд▓ рдФрд░ рдкрд░рд┐рдЪрд┐рдд рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдХреА рдЧрдИ рд╣реИ, рдЬреЛ рд╕реВрдЪрд┐рдпреЛрдВ рдХрд╛ рдЖрджреЗрд╢ рджреЗрддреА рд╣реИрдВред рдЗрд╕ рд▓реЗрдЦ рдХреЛ рдкрдврд╝рддреЗ рд╕рдордп, рдпрд╣ HoTT рдХреЛ рдПрдХ рдЕрдзрд┐рдХ рд╡рд┐рдХрд╕рд┐рдд рд╕реНрд╡рдпрдВрд╕рд┐рджреНрдз рдХреЗ рд╕рд╛рде рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЧрд╣рди рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рдЬреЛ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдФрд░ рд╕рдорд╛рдирддрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рд╕реБрд╡рд┐рдзрд╛ рджреЗрддрд╛ рд╣реИред
1.1 рдЖрд╢реНрд░рд┐рдд рдкреНрд░рдХрд╛рд░, рдХрд░реА - рд╣рд╛рд╡рд░реНрдб рдкрддреНрд░рд╛рдЪрд╛рд░, рдмреНрд░рд╣реНрдорд╛рдВрдб
рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рдирд┐рд░реНрднрд░ рдкреНрд░рдХрд╛рд░реЛрдВ рд╡рд╛рд▓реА рднрд╛рд╖рд╛рдПрдВ рд╕рд╛рдорд╛рдиреНрдп рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рд╕рд╛рдорд╛рдиреНрдп рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рд╕реЗ рднрд┐рдиреНрди рд╣реЛрддреА рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ рд╕реВрдЪрд┐рдпрд╛рдБ рдпрд╛ рдкреНрд░рд╛рдХреГрддрд┐рдХ рд╕рдВрдЦреНрдпрд╛рдПрдБ, рдРрд╕реЗ рдкреНрд░рдХрд╛рд░ рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рдкреИрд░рд╛рдореАрдЯрд░ рдорд╛рди рдкрд░ рдирд┐рд░реНрднрд░ рд╣реЛрддреЗ рд╣реИрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдмрд╕реЗ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рд▓рдореНрдмрд╛рдИ рдХреЗ рдПрди рдпрд╛ рд╕рдВрддреБрд▓рд┐рдд рд╡реГрдХреНрд╖реЛрдВ рдХреЗ рд╡реИрдХреНрдЯрд░ рд╣реИрдВ рдЬреЛ рдХрд┐рд╕реА рдЧрд╣рд░рд╛рдИ рдХреЗ рдШ рдХреЗ рд╣реИрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рдХреБрдЫ рдФрд░ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ
рдпрд╣рд╛рдБ рдХрд┐рдпрд╛ рдЧрдпрд╛
рд╣реИредрдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐
рдХрд░реА - рд╣рд╛рд╡рд░реНрдб рдкрддреНрд░рд╛рдЪрд╛рд░ рддрд░реНрдХ рдХреЗ рдмрдпрд╛рдиреЛрдВ рдкрд░ рдирд┐рд░реНрднрд░ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЗрд╕ рдкрддреНрд░рд╛рдЪрд╛рд░ рдХрд╛ рдореБрдЦреНрдп рд╡рд┐рдЪрд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рдПрдХ рдЦрд╛рд▓реА рдкреНрд░рдХрд╛рд░ рдПрдХ рдЧрд▓рдд рдХрдерди рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ, рдФрд░ рдЖрдмрд╛рджреА рд╡рд╛рд▓реЗ рдкреНрд░рдХрд╛рд░ рдПрдХ рд╕рдЪреНрдЪреЗ рдХрдерди рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИрдВред рдкреНрд░рдХрд╛рд░ рддрддреНрд╡реЛрдВ рдХреЛ рдЗрд╕реА рддрд╛рд░реНрдХрд┐рдХ рдХрдерди рдХреЗ рдкреНрд░рдорд╛рдг рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЛрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрд┐рд╕реА рднреА рддрддреНрд╡ рдЬреИрд╕реЗ рдкреВрд░реНрдгрд╛рдВрдХ рдХреЛ рдЗрд╕ рддрдереНрдп рдХреЗ рдкреНрд░рдорд╛рдг рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдкреВрд░реНрдгрд╛рдВрдХ рдореМрдЬреВрдж рд╣реИрдВ (рдЕрд░реНрдерд╛рдд рдкреВрд░реНрдгрд╛рдВрдХ рдХрд╛ рдкреНрд░рдХрд╛рд░ рдЖрдмрд╛рджреА рд╣реИ)ред
рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рд╛рдХреГрддрд┐рдХ рдирд┐рд░реНрдорд╛рдг рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд╛рд░реНрдХрд┐рдХ рд╕рдВрдпреЛрдЬрдиреЛрдВ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИрдВ:
- рдкреНрд░рдХрд╛рд░ рдП ├Ч рдмреА рдХреЗ рдЙрддреНрдкрд╛рдж рдХреЛ рдХрднреА-рдХрднреА рдЬреЛрдбрд╝реА рдП рдмреА рдХрд╛ рдкреНрд░рдХрд╛рд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЛ рдЖрдмрд╛рджреА рдФрд░ рдЕрдЧрд░ рджреЛрдиреЛрдВ рдкреНрд░рдХрд╛рд░ рдХреЗ рдП рдФрд░ рдмреА рдЖрдмрд╛рджреА рд╡рд╛рд▓реЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдирд┐рд░реНрдорд╛рдг рддрд╛рд░реНрдХрд┐рдХ "рдФрд░" рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред
- рдП + рдмреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдпреЛрдЧ рд╣рд╛рд╕реНрдХреЗрд▓ рдореЗрдВ, рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЛ рдпрд╛ рддреЛ рдП рдмреА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЛ рдЖрдмрд╛рджреА рдФрд░ рдЕрдЧрд░ рдП рдпрд╛ рдмреА рдкреНрд░рдХрд╛рд░реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдЖрдмрд╛рджреА рд╣реИ, рддреЛ рдпрд╣ рдирд┐рд░реНрдорд╛рдг рдПрдХ рддрд╛рд░реНрдХрд┐рдХ "рдпрд╛" рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред
- рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдкреНрд░рдХрд╛рд░ рдП тЖТ рдмреАред рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдХреЛрдИ рднреА рдлрд╝рдВрдХреНрд╢рди рдП рдХреЗ рддрддреНрд╡реЛрдВ рдХреЛ рдмреА рдХреЗ рддрддреНрд╡реЛрдВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдРрд╕рд╛ рдлрд╝рдВрдХреНрд╢рди рдареАрдХ рдЙрд╕реА рдкреНрд░рдХрд╛рд░ рдореМрдЬреВрдж рд╣реЛрддрд╛ рд╣реИ, рдЬрдм рдЯрд╛рдЗрдк рдП рдХреЗ рддрддреНрд╡ рдХрд╛ рдЕрд╕реНрддрд┐рддреНрд╡ рдЯрд╛рдЗрдк рдмреА рдХреЗ рддрддреНрд╡ рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рд╕реЗ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдпрд╣ рдирд┐рд░реНрдорд╛рдг рдирд┐рд╣рд┐рддрд╛рд░реНрде рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред
рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдЕрдм рд╣рдореЗрдВ A рдХрд╛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдкреНрд░рдХрд╛рд░ A рдФрд░ рдкреНрд░рдХрд╛рд░ B рдХрд╛ рдкрд░рд┐рд╡рд╛рд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ A рдХреЗ рдПрдХ рддрддреНрд╡ рдХреЗ рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рдорд╛рдгрд┐рдд рд╣реИред рдЖрдЗрдП рд╣рдо рдирд┐рд░реНрднрд░ рдкреНрд░рдХрд╛рд░реЛрдВ рдкрд░ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдирд┐рд░реНрдорд╛рдгреЛрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдг рджреЗрдВред
- рдЖрд╢реНрд░рд┐рдд рдХрд╛рд░реНрдп рдкреНрд░рдХрд╛рд░ ╬а (a: A) (B a)ред рдпрд╣ рдкреНрд░рдХрд╛рд░ рд╕рд╛рдорд╛рдиреНрдп рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдкреНрд░рдХрд╛рд░ A тЖТ B рдХреЗ рд╕рд╛рде рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ рдпрджрд┐ B, A рдХреЗ рдкреНрд░рдХрд╛рд░ рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рд╣реИ ╬а (a: A) (B) рдкреНрд░рдХрд╛рд░ A рдХреЗ рдкреНрд░рдХрд╛рд░ A рдХреЗ рддрддреНрд╡ рдХреЛ рдХрд┐рд╕реА рднреА рддрддреНрд╡ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдореМрдЬреВрдж рд╣реИ рдпрджрд┐ рдФрд░ рдХреЗрд╡рд▓ рдЕрдЧрд░, рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП : рдП, рдПрдХ рддрддреНрд╡ рдмреА рдореМрдЬреВрдж рд╣реИред рдЗрд╕рд▓рд┐рдП, рдпрд╣ рдирд┐рд░реНрдорд╛рдг рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдХреНрд╡рд╛рдВрдЯрд┐рдлрд╛рдпрд░ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ ondsред рдЖрд╢реНрд░рд┐рдд рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рд┐рдП, Arend рд╕рд┐рдВрдЯреИрдХреНрд╕
\Pi (x : A) -> B a
, рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╢рдмреНрдж рдХрд╛ рдирд┐рд░реНрдорд╛рдг рд▓рдВрдмреЛрджрд░ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ \lam (a : A) => f a.
рдЙрдкрдпреЛрдЧ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ \lam (a : A) => f a.
- рдирд┐рд░реНрднрд░ рдЬреЛрдбрд╝реЗ рдХрд╛ рдкреНрд░рдХрд╛рд░ is (a: A) (B) рд╣реИред рдпрд╣ рдкреНрд░рдХрд╛рд░ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рдХрд╛рд░ рдХреЗ рдП ├Ч рдмреА рдЬреЛрдбрд╝реЗ рдХреЗ рд╕рд╛рде рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ рдпрджрд┐ рдмреА рдП рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рд╣реИред рдкреНрд░рдХрд╛рд░ ╬г (рдП: рдП) (рдмреА) рдПрдХ рддрддреНрд╡ рдХреЗ рдореМрдЬреВрдж рд╣реЛрдиреЗ рдкрд░ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ рдЖрдмрд╛рджреА рд╣реИ: рдП рдФрд░ рдП рдкреНрд░рдХрд╛рд░ рдмреА рдХрд╛ рдПрдХ рддрддреНрд╡ред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдпрд╣ рдкреНрд░рдХрд╛рд░ рдЕрд╕реНрддрд┐рддреНрд╡ рдорд╛рддреНрд░рд╛
тИГ
рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред Arend рдореЗрдВ рдирд┐рд░реНрднрд░ рдЬреЛрдбрд╝реЗ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ \Sigma (a : A) (B a)
рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕реЗ (рдирд┐рд░реНрднрд░) рдЬреЛрдбрд╝реА рдХреЗ рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛ (a, b)
рдЙрдкрдпреЛрдЧ рд╕реЗ рдирд┐рд░реНрдорд┐рдд рд╣реЛрдиреЗ рд╡рд╛рд▓реА рд╢рд░реНрддреЛрдВ рд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред
- рд╕рдорд╛рдирддрд╛ рдХрд╛ рдкреНрд░рдХрд╛рд░ a = a 'рд╣реИ, рдЬрд╣рд╛рдБ a рдФрд░' a 'рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреЗ рджреЛ рддрддреНрд╡ рд╣реИрдВред рдП рдРрд╕рд╛ рдкреНрд░рдХрд╛рд░ рдЖрдмрд╛рдж рд╣реИ рдпрджрд┐ a рдФрд░' рдмрд░рд╛рдмрд░ рд╣реИрдВ, рдФрд░ рдЕрдиреНрдпрдерд╛ рдЦрд╛рд▓реА рд╣реИред рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рддрд░реНрдХ рдореЗрдВ рд╕рдорд╛рдирддрд╛ рдХреА рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХрд╛ рдПрдХ рдПрдирд╛рд▓реЙрдЧ рд╣реИред
рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░, рд╣рдо рдкрд╛рдардХ рдХреЛ рдЙрди рд╕реНрд░реЛрддреЛрдВ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рдирдореЗрдВ рдХрд░реА - рд╣рд╛рд╡рд░реНрдб рдкрддреНрд░рд╛рдЪрд╛рд░ рдХреА рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдЬрд╛рдВрдЪ рдХреА рдЬрд╛рддреА рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
рдПрдХ рд╡реНрдпрд╛рдЦреНрдпрд╛рди рдкрд╛рдареНрдпрдХреНрд░рдо рдпрд╛
рдпрд╣рд╛рдВ рдпрд╛
рдпрд╣рд╛рдВ рд▓реЗрдЦ)ред
рдЯрд╛рдЗрдк рдереНрдпреЛрд░реА рдореЗрдВ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдП рдЧрдП рд╕рднреА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЪреВрдБрдХрд┐ рдЗрд╕ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЗ рдврд╛рдВрдЪреЗ рдореЗрдВ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рдирд┐рд░реВрдкрд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рднрд╛рд╡реЛрдВ рдкрд░ рднреА рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдкреНрд░рдХрд╛рд░ рдХреЛ рд╕реМрдВрдкрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП?
рдорди рдореЗрдВ рдЖрдиреЗ рд╡рд╛рд▓рд╛ рдкрд╣рд▓рд╛ рднреЛрд▓рд╛-рднрд╛рд▓рд╛ рдирд┐рд░реНрдгрдп рд╣реИ, рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдПрдХ рдФрдкрдЪрд╛рд░рд┐рдХ рдкреНрд░рдХрд╛рд░ рдХреЛ рдЯрд╛рдЗрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрд╕рд╛рдЗрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ
рдмреНрд░рд╣реНрдорд╛рдВрдб рдХрд╣рд╛ рдЬрд╛рддрд╛
рд╣реИ (рдЗрд╕реЗ рдЗрд╕рд▓рд┐рдП рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рд╕рднреА рдкреНрд░рдХрд╛рд░ рд╕рд╛рдорд╛рдиреНрдп рд╣реИрдВ)ред рдпрджрд┐ рд╣рдо рдЗрд╕ рдмреНрд░рд╣реНрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЙрдкрд░реНрдпреБрдХреНрдд рд░рд╛рд╢рд┐ рдФрд░ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЙрддреНрдкрд╛рдж, рд╣рд╕реНрддрд╛рдХреНрд╖рд░
\Type тЖТ \Type тЖТ \Type
рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗ
\Type тЖТ \Type тЖТ \Type
_
\Type тЖТ \Type тЖТ \Type
, рдФрд░ рдЖрд╢реНрд░рд┐рдд рдЙрддреНрдкрд╛рдж рдХреЗ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдирд┐рд░реНрдорд╛рдг рдФрд░ рдЖрд╢реНрд░рд┐рдд рд░рд╛рд╢рд┐ рдХреЛ рд╣рд╕реНрддрд╛рдХреНрд╖рд░
╬а (A : \Type) тЖТ ((A тЖТ \Type) тЖТ \Type)
ред
рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░, рдпрд╣ рд╕рд╡рд╛рд▓ рдЙрдарддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛
\Type
рдмреНрд░рд╣реНрдорд╛рдВрдб рдЦреБрдж рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП? рдпрд╣ рдХрд╣рдиреЗ рдХреА рдПрдХ рднреЛрд▓реА рдХреЛрд╢рд┐рд╢ рдХрд┐ рдмреНрд░рд╣реНрдорд╛рдВрдб рдХрд╛
\Type
, рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░,
\Type
_ \Type
рд╣реА
рдЧрд┐рд░рд╛рд░реНрдб рд╡рд┐рд░реЛрдзрд╛рднрд╛рд╕ рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдПрдХ рдПрдХрд▓ рдмреНрд░рд╣реНрдорд╛рдВрдб рдХреЗ рдмрдЬрд╛рдп
\Type
рдмреНрд░рд╣реНрдорд╛рдВрдб рдХрд╛ рдПрдХ рдЕрдирдВрдд
рдкрджрд╛рдиреБрдХреНрд░рдо рдорд╛рдирддреЗ
рд╣реИрдВ , рдЕрд░реНрдерд╛рддреНред рдмреНрд░рд╣реНрдорд╛рдВрдбреЛрдВ рдХреА рдиреЗрд╕реНрдЯреЗрдб рд╢реНрд░реГрдВрдЦрд▓рд╛
\Type 1 < \Type 2 < тАж
, рдЬрд┐рд╕рдХрд╛ рд╕реНрддрд░ рдкреНрд░рд╛рдХреГрддрд┐рдХ рд╕рдВрдЦреНрдпрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдЧрд┐рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдмреНрд░рд╣реНрдорд╛рдВрдб рдХрд╛
\Type i
, рдмреНрд░рд╣реНрдорд╛рдВрдб
\Type (i+1)
ред рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдкреНрд░рдХрд╛рд░ рдХреЗ рдирд┐рд░реНрдорд╛рдгреЛрдВ рдХреЗ рд▓рд┐рдП, рдЕрдзрд┐рдХ
рдЬрдЯрд┐рд▓ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рднреА рдкреЗрд╢ рдХрд░рдиреЗ рд╣реЛрдВрдЧреЗред
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдкреНрд░рдХрд╛рд░ рд╕рд┐рджреНрдзрд╛рдВрдд рдореЗрдВ рдмреНрд░рд╣реНрдорд╛рдВрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рддрд╛рдХрд┐ рдХрд┐рд╕реА рднреА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдкреНрд░рдХрд╛рд░ рд╣реЛред рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреА рдХреБрдЫ рдХрд┐рд╕реНрдореЛрдВ рдореЗрдВ, рдмреНрд░рд╣реНрдорд╛рдВрдбреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рджреВрд╕рд░реЗ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: рдкреНрд░рдХрд╛рд░реЛрдВ рдХреА рдХрд┐рд╕реНрдореЛрдВ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рд╣рдо рдкрд╣рд▓реЗ рд╣реА рджреЗрдЦ рдЪреБрдХреЗ рд╣реИрдВ рдХрд┐ рд╕реЗрдЯ рдФрд░ рдХрдерди рд╡рд┐рд╢реЗрд╖ рдкреНрд░рдХрд╛рд░ рдХреЗ рдорд╛рдорд▓реЗ рд╣реИрдВред рдЗрд╕рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рд┐рджреНрдзрд╛рдВрдд рдореЗрдВ рдмрдпрд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдкреНрд░реЛрдк рдмреНрд░рд╣реНрдорд╛рдВрдб рдФрд░ рд╕реЗрдЯ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ
i рдмреНрд░рд╣реНрдорд╛рдВрдбреЛрдВ рдХреА рдПрдХ рдЕрд▓рдЧ рдкрджрд╛рдиреБрдХреНрд░рдо рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред рдпрд╣ рдХреИрд▓рдХреБрд▓рд╕ рдСрдл рдЗрдВрдбрдХреНрдЯрд┐рд╡ рдХрдВрд╕реНрдЯреНрд░рдХреНрд╢рдВрд╕ рдореЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реИ, рдЬрд┐рд╕ рд╕рд┐рджреНрдзрд╛рдВрдд рдкрд░ Coq рдкреНрд░рдгрд╛рд▓реА рдЖрдзрд╛рд░рд┐рдд рд╣реИред
1.2 рд╕рд░рд▓ рдЖрдЧрдордирд╛рддреНрдордХ рдкреНрд░рдХрд╛рд░ рдФрд░ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдг
рд╕рд░рд▓рддрдо рдЖрдЧрдордирд╛рддреНрдордХ рдкреНрд░рдХрд╛рд░ рдХреЗ рдбреЗрдЯрд╛ рдХреЗ рдЖрд░реНрдиреНрдб рдкрд░ рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ: рдмреВрд▓рд┐рдпрди рдкреНрд░рдХрд╛рд░, рдкреНрд░рд╛рдХреГрддрд┐рдХ рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рдХрд╛рд░ рдФрд░ рдмрд╣реБрд░реВрдкреА рд╕реВрдЪреАред рдирдП рдкреНрд░реЗрд░рдХ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Arend
\data
рдХреАрд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
\data Empty -- ,
\data Bool
| true
| false
\data Nat
| zero
| suc Nat
\data List (A : \Set)
| nil
| \infixr 5 :-: A (List A)
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдКрдкрд░ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдгреЛрдВ рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ,
\data
рдХреАрд╡рд░реНрдб рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рдЖрдЧрдордирд╛рддреНрдордХ рдкреНрд░рдХрд╛рд░ рдФрд░ рдЙрд╕рдХреЗ рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛рдУрдВ рдХреА рд╕реВрдЪреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреА рд╣реЛрдЧреАред рдЙрд╕реА рд╕рдордп, рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдФрд░ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░реНрд╕ рдХреЗ рдХреБрдЫ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдорд╛рди рд▓реЗрдВ рдХрд┐ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ
List
рдкреНрд░рдХрд╛рд░ рдореЗрдВ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░
A
nil
рд▓рд┐рд╕реНрдЯ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЗ рдХреЛрдИ рдкреИрд░рд╛рдореАрдЯрд░ рдирд╣реАрдВ рд╣реИрдВ, рдФрд░ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░: -: рдХреЗ рджреЛ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИрдВ (рдЬрд┐рдирдореЗрдВ рд╕реЗ рдПрдХ рдЯрд╛рдЗрдк
A
, рдФрд░ рджреВрд╕рд░рд╛ рдЯрд╛рдЗрдк
List A
)ред рдмреНрд░рд╣реНрдорд╛рдВрдб
\Set
рдореЗрдВ рдРрд╕реЗ рдкреНрд░рдХрд╛рд░ рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ
\Set
рд╣реЛрддреЗ рд╣реИрдВ (рд╕реЗрдЯ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдЕрдЧрд▓реЗ рднрд╛рдЧ рдореЗрдВ рджреА рдЬрд╛рдПрдЧреА)ред
\infixr
рдЖрдкрдХреЛ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЗ рд▓рд┐рдП infix рд╕рдВрдХреЗрддрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ: -: рдФрд░, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, Arend рдкрд╛рд░реНрд╕рд░ рдХреЛ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдСрдкрд░реЗрдЯрд░: -: рдкреНрд░рд╛рдердорд┐рдХрддрд╛ 5 рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд╣реА-рд╕рд╣рдпреЛрдЧреА рдСрдкрд░реЗрд╢рди рд╣реИред
Arend рдореЗрдВ, рд╕рднреА рдХреАрд╡рд░реНрдб рдПрдХ рдмреИрдХрд╕реНрд▓реИрд╢ рдЪрд░рд┐рддреНрд░ ("\"), LaTeX рд╕реЗ рдкреНрд░реЗрд░рд┐рдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреЗ рд╣реИрдВред рдмрд╕ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ Arend рдореЗрдВ рд╢рд╛рдмреНрджрд┐рдХ рдирд┐рдпрдо рдмрд╣реБрдд рдЙрджрд╛рд░ рд╣реИрдВ:
Circle_HSpace, contrFibers=>Equiv, suc/=0, zro_*-left
рдФрд░ even
n:Nat
- рдпреЗ рд╕рднреА рд╢рд╛рдмреНрджрд┐рдХ рд╢рдмреНрдж Arend рдореЗрдВ рдорд╛рдиреНрдп рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВред рдЕрдВрддрд┐рдо рдЙрджрд╛рд╣рд░рдг рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐
рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдФрд░ рдмреГрд╣рджрд╛рдиреНрддреНрд░ рд╡рд░реНрдгреЛрдВ рдХреЗ рдмреАрдЪ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреЛ рдпрд╛рдж рд░рдЦрдирд╛ Arend рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдХрд┐рддрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ Arend рдЖрдЗрдбреЗрдВрдЯрд┐рдлрд╝рд╛рдпрд░ рдореЗрдВ рдЗрд╕реЗ рдпреВрдирд┐рдХреЛрдб рд╡рд░реНрдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рд╣реИ (рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдЖрдк рд╕рд┐рд░рд┐рд▓рд┐рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ)ред
\func
рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Arend
\func
рдХреАрд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдирд┐рд░реНрдорд╛рдг рдХрд╛ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИ:
\func
рдХреАрд╡рд░реНрдб рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдирд╛рдо, рдЙрд╕рдХреЗ рдкреИрд░рд╛рдореАрдЯрд░ рдФрд░ рд░рд┐рдЯрд░реНрди рд╡реИрд▓реНрдпреВ рдХрд╛ рдкреНрд░рдХрд╛рд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдЕрдВрддрд┐рдо рддрддреНрд╡ рдЙрд╕рдХрд╛ рд╢рд░реАрд░ рд╣реИред
рдпрджрд┐ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЙрд╕ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рджрд┐рдП рдЧрдП рдлрд╝рдВрдХреНрд╢рди рдХреА рдЧрдгрдирд╛ рдХреА рдЬрд╛рдиреА рд╣реИ, рддреЛ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╢рд░реАрд░ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЯреЛрдХрди => рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдирдХрд╛рд░ рдХрд╛рд░реНрдп рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред
\func Not (A : \Type) : \Type => A -> Empty
рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рд╡рд╛рдкрд╕реА рдкреНрд░рдХрд╛рд░ рд╣рдореЗрд╢рд╛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред рдКрдкрд░ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, Arend рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдЯрд╛рдЗрдк
Not
рд▓рдЧрд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдЧрд╛, рдФрд░ рд╣рдо рдХреЛрд╖реНрдардХ рдХреЗ рдмрд╛рдж ":
\Type
" рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдЫреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред
рдЬреИрд╕рд╛ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рдФрдкрдЪрд╛рд░рд┐рдХ рдЧрдгрд┐рдд рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдореЗрдВ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ
\Type
рдмреНрд░рд╣реНрдорд╛рдВрдб рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдкрд╖реНрдЯ рднрд╡рд┐рд╖реНрдп рдХрд╣рдиреЗрд╡рд╛рд▓рд╛ рд╕реНрддрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рдФрд░ рдЬрд┐рди рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рд░реВрдк рд╕реЗ рдПрдХ рдкреВрд░реНрд╡рд╛рдиреБрдорд╛рди рд╕реНрддрд░ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдП рдмрд┐рдирд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЙрдиреНрд╣реЗрдВ
рдмрд╣реБрд░реВрдкреА рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЕрдм рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ рдЬреЛ рд╕реВрдЪреА рдХреА рд▓рдВрдмрд╛рдИ рдХреА рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреЗ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкреИрдЯрд░реНрди рдорд┐рд▓рд╛рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд╣рдЪрд╛рдирдирд╛ рдЖрд╕рд╛рди рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП Arend
\elim
рдХреАрд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рдЙрди рдЪрд░ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЬрд┐рдирдХреЗ рджреНрд╡рд╛рд░рд╛ рддреБрд▓рдирд╛ рдХреА рдЬрд╛рддреА рд╣реИ (рдпрджрд┐ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдРрд╕реЗ рдЪрд░ рд╣реИрдВ, рддреЛ рдЙрдиреНрд╣реЗрдВ рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдо рд╕реЗ рд▓рд┐рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП)ред рдпрджрд┐ рддреБрд▓рдирд╛ рд╕рднреА рд╕реНрдкрд╖реНрдЯ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд▓рд┐рдП рдХреА рдЬрд╛рддреА рд╣реИ, рддреЛ рдЪрд░ рдХреЗ рд╕рд╛рде
\elim
рдЫреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рддреБрд▓рдирд╛ рдХреЗ рдмрд┐рдВрджреБрдУрдВ рдХреЗ рдПрдХ рдмреНрд▓реЙрдХ рдХреЗ рдмрд╛рдж рд╣реЛрддрд╛ рд╣реИ, рдПрдХ рджреВрд╕рд░реЗ рд╕реЗ рдПрдХ рдКрд░реНрдзреНрд╡рд╛рдзрд░ рдкрдЯреНрдЯреА рджреНрд╡рд╛рд░рд╛ рдЕрд▓рдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ "" | рдЗрд╕ рдмреНрд▓реЙрдХ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдЖрдЗрдЯрдо рдлреЙрд░реНрдо рдХреА рдПрдХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╣реИ
┬л, ┬╗ => ┬л┬╗
ред
\func length {A : \Set} (l : List A) : Nat | nil => 0 | :-: x xs => suc (length xs)
рдКрдкрд░ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ,
length
рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдП рдШреБрдВрдШрд░рд╛рд▓реЗ рдмреНрд░реЗрд╕рд┐рдЬрд╝ рд╕реЗ рдШрд┐рд░рд╛ рд╣реБрдЖ рд╣реИред Arend рдореЗрдВ рдЗрди рдХреЛрд╖реНрдардХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд┐рд╣рд┐рдд рддрд░реНрдХ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд рддрд░реНрдХ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╕рдордп рдпрд╛ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЫреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реИред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ Arend рдореЗрдВ рдЖрдк рдПрдХ рдкреИрдЯрд░реНрди рдХреЗ рд╕рд╛рде рдорд┐рд▓рд╛рди рдХрд░рддреЗ рд╕рдордп рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░реНрд╕ рдХреЛ рдирд╛рдорд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП infix рд╕рдВрдХреЗрддрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдирдореВрдирд╛ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдЙрдкрд╕рд░реНрдЧ рд╕рдВрдХреЗрддрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЬреИрд╕реЗ рдХрд┐ Coq / Agda, Arend рдореЗрдВ рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреА рдЧрд╛рд░рдВрдЯреА рджреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП (рдпрд╛рдиреА, Arend рдореЗрдВ рд╕рдорд╛рдкреНрддрд┐ рдХреА рдЬрд╛рдБрдЪ рдореМрдЬреВрдж рд╣реИ)ред рд▓рдВрдмрд╛рдИ рдлрд╝рдВрдХреНрд╢рди рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдореЗрдВ, рдпрд╣ рдЪреЗрдХ рд╕рдлрд▓ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдХреЙрд▓ рд╕рдЦреНрддреА рд╕реЗ рдкрд╣рд▓реЗ рд╕реНрдкрд╖реНрдЯ рддрд░реНрдХ рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдРрд╕реА рдХреЛрдИ рдХрдореА рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рддреЛ Arend рдПрдХ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рджреЗрдЧрд╛ред
\func bad : Nat => bad [ERROR] Termination check failed for function 'bad' In: bad
Arend рдкрд░рд┐рдкрддреНрд░ рдирд┐рд░реНрднрд░рддрд╛ рдФрд░ рдкрд╛рд░рд╕реНрдкрд░рд┐рдХ рд░реВрдк рд╕реЗ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдХрд╛рд░реНрдпреЛрдВ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдкреВрд░реНрдг рдЬрд╛рдБрдЪ рднреА рдХреА рдЬрд╛рддреА рд╣реИред рдПред рдПрдмреЗрд▓ рдХреЗ
рд▓реЗрдЦ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЗрд╕ рдЪреЗрдХ рдХреЗ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕рдореЗрдВ рдЖрдкрдХреЛ рдЙрди рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХрд╛ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╡рд░рдг рдорд┐рд▓реЗрдЧрд╛ рдЬреЛ рдкрд╛рд░рд╕реНрдкрд░рд┐рдХ рд░реВрдк рд╕реЗ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╕рдВрддреБрд╖реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рез.рей рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рд╕реЗ рдХреИрд╕реЗ рднрд┐рдиреНрди рд╣реЛрддреЗ рд╣реИрдВ?
рд╣рдордиреЗ рдкрд╣рд▓реЗ рд▓рд┐рдЦрд╛ рдерд╛ рдХрд┐ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЙрджрд╛рд╣рд░рдг рд╕реЗрдЯ рдФрд░ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдордиреЗ Arend рдореЗрдВ coses рдХреЛ рдирд┐рд░реВрдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП keywords
\Type
рдФрд░
\Set
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рдЗрд╕ рдЦрдВрдб рдореЗрдВ, рд╣рдо рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╕рдордЭрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдХреИрд╕реЗ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯреНрд╕ рдЗрдиреНрдЯреАрд░рд┐рдпрд░ рдЯрд╛рдЗрдк рдереНрдпреЛрд░реА (MLTT, CIC, HoTT) рдХреА рдХрд┐рд╕реНрдореЛрдВ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рд╕рд╛рде рд╣реА рд╕рд╛рде рдпрд╣ рднреА рд╕рдордЭрд╛рддреЗ рд╣реИрдВ рдХрд┐ Arend рдореЗрдВ рдХреАрд╡рд░реНрдбреНрд╕
\Prop
,
\Set
рдФрд░
\Type
рдХреНрдпрд╛ рдЕрд░реНрде рд╣реЛрддреЗ рд╣реИрдВред
рд╕реНрдорд░рдг рдХрд░реЛ рдХрд┐ рд╢рд╛рд╕реНрддреНрд░реАрдп рдорд╛рд░реНрдЯрд┐рди-рд▓реЛрдл рд╕рд┐рджреНрдзрд╛рдВрдд рдореЗрдВ рд╕реЗрдЯ рдФрд░ рдХрдердиреЛрдВ рдореЗрдВ рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рдкреГрдердХреНрдХрд░рдг рдирд╣реАрдВ рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рд╕рдВрдЪрдпреА рдмреНрд░рд╣реНрдорд╛рдВрдб рд╣реИ (рдЬрд┐рд╕реЗ рдпрд╛ рддреЛ рд╕реЗрдЯ рдЗрди рдПрдЧреНрдбрд╛, рдпрд╛ рдЯрд╛рдЗрдк рдЗрди рдЗрджрд░рд┐рд╕, рдпрд╛ рд╕реЙрд░реНрдЯ рдЗрди рд▓реАрди) рдореЗрдВ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕рдмрд╕реЗ рд╕рд░рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕реА рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпрд╛рдВ рд╣реИрдВ рдЬрд┐рдирдореЗрдВ рдЗрд╕рдХреА рдХрдорд┐рдпрд╛рдВ рдкреНрд░рдХрдЯ рд╣реЛрддреА рд╣реИрдВред рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдо "рдСрд░реНрдбрд░ рдХреА рдЧрдИ рд╕реВрдЪреА" рдкреНрд░рдХрд╛рд░ рдХреЛ рдПрдХ рдЖрд╢реНрд░рд┐рдд рдЬреЛрдбрд╝реА рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рд╕реВрдЪреА рдФрд░ рдЙрд╕рдХреЗ рдЖрджреЗрд╢ рдХрд╛ рдкреНрд░рдорд╛рдг рд╢рд╛рдорд┐рд▓ рд╣реИред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ "рд╢реБрджреНрдз" рдПрдордПрд▓рдЯреАрдЯреА рдХреЗ рдврд╛рдВрдЪреЗ рдореЗрдВ, рд╕рдорд╛рди рддрддреНрд╡реЛрдВ рд╕реЗ рдорд┐рд▓рдХрд░ рдЖрджреЗрд╢рд┐рдд рд╕реВрдЪрд┐рдпреЛрдВ рдХреА рд╕рдорд╛рдирддрд╛ рдХреЛ рд╕рд╛рдмрд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдЬреЛ рдХрд┐ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдЖрджреЗрд╢ рдХреЗ рдкреНрд░рдорд╛рдг рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рднрд┐рдиреНрди рд╣реЛрддреЗ рд╣реИрдВред рдРрд╕реА рд╕рдорд╛рдирддрд╛ рд╣реЛрдирд╛ рдмрд╣реБрдд рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рдФрд░ рд╡рд╛рдВрдЫрдиреАрдп рд╣реЛрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рд╕рд╛рдмрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрд╕рдВрднрд╡рддрд╛ рдХреЛ рдПрдордПрд▓рдЯреАрдЯреА рдореЗрдВ рдПрдХ рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рджреЛрд╖ рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЖрдЧрд╛рдбрд╛ рдореЗрдВ, рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдЕрдиреИрддрд┐рдХрддрд╛ рдХреЗ рддрдерд╛рдХрдерд┐рдд рдПрдиреЛрдЯреЗрд╢рди рдХреА рдорджрдж рд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (
рд╕реНрд░реЛрдд рджреЗрдЦреЗрдВ, рдЬрд┐рд╕рдореЗрдВ рд╕реВрдЪреА рдЙрджрд╛рд╣рд░рдг рдкрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рд╣реИ)ред рдпреЗ рдПрдиреЛрдЯреЗрд╢рди, рд╣рд╛рд▓рд╛рдВрдХрд┐, MLTT рд╕рд┐рджреНрдзрд╛рдВрдд рд╕реЗ рдПрдХ рдирд┐рд░реНрдорд╛рдг рдирд╣реАрдВ рд╣реИрдВ, рди рд╣реА рд╡реЗ рдкреНрд░рдХрд╛рд░реЛрдВ рдкрд░ рдкреВрд░реНрдг-рдирд┐рд░реНрдорд┐рдд рдирд┐рд░реНрдорд╛рдг рд╣реИрдВ (рдпрд╣ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рдПрдиреЛрдЯреЗрд╢рди рдХреЗ рд╕рд╛рде рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИ рдЬреЛ рдлрд╝рдВрдХреНрд╢рди рддрд░реНрдХ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред
рд╕реАрдЖрдИрд╕реА рдореЗрдВ, рд╕реАрдЖрдИрд╕реА рдкрд░ рдЖрдзрд╛рд░рд┐рдд, рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдмреНрд░рд╣реНрдорд╛рдВрдб рд╣реИрдВ рдЬреЛ рдПрдХ рджреВрд╕рд░реЗ рдореЗрдВ
Prop
:
Prop
(рдмрдпрд╛рдиреЛрдВ рдХрд╛ рдмреНрд░рд╣реНрдорд╛рдВрдб) рдФрд░
Set
(рд╕реЗрдЯреЛрдВ рдХрд╛ рдмреНрд░рд╣реНрдорд╛рдВрдб), рдЬреЛ
Type
рдмреНрд░рд╣реНрдорд╛рдВрдбреЛрдВ рдХреЗ рд╡реНрдпрд╛рдкрдХ рдкрджрд╛рдиреБрдХреНрд░рдо рдореЗрдВ рдбреВрдмреЗ рд╣реБрдП рд╣реИрдВред
Prop
рдФрд░
Set
рдмреАрдЪ рдореБрдЦреНрдп рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рдЪрд░ рдкрд░ рдХрдИ рдкреНрд░рддрд┐рдмрдВрдз рд╣реИрдВ рдЬрд┐рдирдХрд╛ рдкреНрд░рдХрд╛рд░
Prop
рдореЗрдВ Coq рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдЧрдгрдирд╛рдУрдВ рдореЗрдВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдЙрдирдХреЗ рд▓рд┐рдП рдирдореВрдиреЗ рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдХреЗрд╡рд▓ рдЕрдиреНрдп рдХрдердиреЛрдВ рдХреЗ рд╕рд╛рдХреНрд╖реНрдп рдХреЗ рдЕрдВрджрд░ рд╣реА рд╕рдВрднрд╡ рд╣реИред рджреВрд╕рд░реА рдУрд░,
Prop
рдмреНрд░рд╣реНрдорд╛рдВрдб рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рднреА рддрддреНрд╡ рдЕрд╕рдВрдЧрдд рдкреНрд░рдорд╛рдг рдХреЗ рд╕реНрд╡рдпрдВрд╕рд┐рджреНрдз рдореЗрдВ рд╕рдорд╛рди рд╣реИрдВ,
Coq.Logic.ProofIrrelevance рдореЗрдВ рдХрдерди рджреЗрдЦреЗрдВред рдЗрд╕ рд╕реНрд╡рдпрдВрд╕рд┐рджреНрдз рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд╣рдо рдКрдкрд░ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдЖрджреЗрд╢ рд╕реВрдЪрд┐рдпреЛрдВ рдХреА рд╕рдорд╛рдирддрд╛ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рд╕рд╛рдмрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЕрдВрдд рдореЗрдВ, рдмрдпрд╛рдиреЛрдВ рдФрд░ рдмреНрд░рд╣реНрдорд╛рдВрдбреЛрдВ рдХреЗ рд▓рд┐рдП Arend / HoTT рджреГрд╖реНрдЯрд┐рдХреЛрдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рдореБрдЦреНрдп рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ HoTT рдЕрд╕рдВрдЧрдд рд╕рд╛рдХреНрд╖реНрдп рдХреЗ рд╕реНрд╡рдпрдВрд╕рд┐рджреНрдз рдХреЗ рд╕рд╛рде рдлреИрд▓рддрд╛ рд╣реИред рдпрд╣реА рд╣реИ, HoTT рдореЗрдВ рдХреЛрдИ рд╡рд┐рд╢реЗрд╖ рд╕реНрд╡рдпрдВрд╕рд┐рджреНрдз рдирд╣реАрдВ рд╣реИ рдЬреЛ рдпрд╣ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдмрдпрд╛рдиреЛрдВ рдХреЗ рд╕рднреА рддрддреНрд╡ рд╕рдорд╛рди рд╣реИрдВред рд▓реЗрдХрд┐рди HoTT рдореЗрдВ, рдПрдХ рдкреНрд░рдХрд╛рд░,
рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ , рдПрдХ рдмрдпрд╛рди рд╣реИ рдЕрдЧрд░ рдпрд╣ рд╕рд╛рдмрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рд╕рднреА рддрддреНрд╡ рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИрдВред рд╣рдо рдПрдХ рдкреНрд░рдХрд╛рд░ рд╕реЗ рдПрдХ рд╡рд┐рдзреЗрдп рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╕рдЪ рд╣реИ рдпрджрд┐ рдкреНрд░рдХрд╛рд░ рдПрдХ рдХрдерди рд╣реИ:
\func isProp (A : \Type) => \Pi (aa' : A) -> a = a'
рдкреНрд░рд╢реНрди рдЙрдарддрд╛ рд╣реИ: рдЗрд╕ рд╡рд┐рдзреЗрдп рдХреЛ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рд╕рдВрддреБрд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рддреН рдХрдерди рд╣реИрдВ? рдпрд╣ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ рдХрд┐ рдпрд╣ рдЦрд╛рд▓реА рдФрд░ рд╕рд┐рдВрдЧрд▓рдЯрди рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд╣реА рд╣реИред рдЙрди рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд╣рд╛рдВ рдХрдо рд╕реЗ рдХрдо рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрддреНрд╡ рд╣реИрдВ, рдпрд╣ рдЕрдм рд╕рдЪ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред
рдмреЗрд╢рдХ, рд╣рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рддрд╛рд░реНрдХрд┐рдХ рд╕рдВрдпреЛрдЬрдиреЛрдВ рдХреЛ рдмрдпрд╛рдиреЛрдВ рдкрд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПред рдзрд╛рд░рд╛ 1.1 рдореЗрдВ, рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЪрд░реНрдЪрд╛ рдХреА рдХрд┐ рд╡реЗ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдкреНрд░рдХрд╛рд░-рд╕рд┐рджреНрдзрд╛рдВрдд рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдирд┐рдореНрди рд╕рдорд╕реНрдпрд╛ рд╣реИ: рд╣рдордиреЗ рдЬреЛ рднреА рдСрдкрд░реЗрд╢рди рджрд░реНрдЬ рдХрд┐рдП рд╣реИрдВ, рд╡реЗ рд╕рднреА
isProp
рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП
isProp
рд╣реИрдВред рдкреНрд░рдХрд╛рд░ рдХреЗ рдЙрддреНрдкрд╛рдж рдФрд░ (рдирд┐рд░реНрднрд░) рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдкреНрд░рдХрд╛рд░ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдЗрд╕ рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдмрдирд╛рдП рд░рдЦрддреЗ рд╣реИрдВ, рдЬрдмрдХрд┐ рдкреНрд░рдХрд╛рд░ рдФрд░ рдирд┐рд░реНрднрд░ рдЬреЛрдбрд╝реЗ рдХреЗ рдпреЛрдЧ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдирд╣реАрдВ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдо рд╡рдЬреВрдж рдФрд░ рдЕрд╕реНрддрд┐рддреНрд╡ рдХреА рдорд╛рддреНрд░рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред
рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдПрдХ рдирдП рдирд┐рд░реНрдорд╛рдг рдХреА рдорджрдж рд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рддрдерд╛рдХрдерд┐рдд рдкреНрд░рдкреЛрдЬрд╝рд▓ рдЯреНрд░рдВрдХреЗрд╢рди HoTT рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛
рд╣реИ ред рдпрд╣ рдбрд┐рдЬрд╝рд╛рдЗрди рдЖрдкрдХреЛ рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ рдХреЛ рдПрдХ рдмрдпрд╛рди рдореЗрдВ рдмрджрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЗрд╕реЗ рдПрдХ рдФрдкрдЪрд╛рд░рд┐рдХ рдСрдкрд░реЗрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рдирд┐рд╡рд╛рд╕рд┐рдпреЛрдВ рдХреЛ рд╕рдорд╛рди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рд╢рдмреНрджреЛрдВ рдХреЛ рд╕рдорд╛рди рдмрдирд╛рддрд╛ рд╣реИред рдпрд╣ рдСрдкрд░реЗрд╢рди рдХреБрдЫ рд╣рдж рддрдХ Agda рдХреА рдЕрдкрд░рд┐рдкрдХреНрд╡рддрд╛ рдХреЗ рдПрдиреЛрдЯреЗрд╢рди рдХреЗ рд╕рдорд╛рди рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЙрдирдХреЗ рд╡рд┐рдкрд░реАрдд, рдпрд╣ рд╣рд╕реНрддрд╛рдХреНрд╖рд░
\Type -> \Prop
рд╕рд╛рде рдкреНрд░рдХрд╛рд░реЛрдВ рдкрд░ рдПрдХ рдкреВрд░реНрдг рдСрдкрд░реЗрд╢рди рд╣реИред
рдмрдпрд╛рдиреЛрдВ рдХрд╛ рдЕрдВрддрд┐рдо рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЙрджрд╛рд╣рд░рдг рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреЗ рджреЛ рддрддреНрд╡реЛрдВ рдХреА рд╕рдорд╛рдирддрд╛ рд╣реИред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рд╕рд╛рдорд╛рдиреНрдп рдорд╛рдорд▓реЗ рдореЗрдВ рд╕рдорд╛рдирддрд╛ рдХрд╛ рдкреНрд░рдХрд╛рд░
a = a'
рдХрдерди рд╣реЛрдирд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред рдкреНрд░рдХрд╛рд░ рдЬрд┐рдирдХреЗ рд▓рд┐рдП рдпрд╣ рдПрдХ рд╣реИ рдЙрдиреНрд╣реЗрдВ рд╕реЗрдЯ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ:
\func isSet (A : \Type) => \Pi (aa' : A) -> isProp (a = a')
рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдкрд╛рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдЗрд╕ рд╡рд┐рдзреЗрдп рдХреЛ рд╕рдВрддреБрд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рддреН рдЙрди рдкрд░ рд╕рдорд╛рдирддрд╛ рдПрдХ рдХрдерди рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреНрд░рд╛рдХреГрддрд┐рдХ рд╕рдВрдЦреНрдпрд╛рдУрдВ, рдкреВрд░реНрдгрд╛рдВрдХ, рд╕реЗрдЯреЛрдВ рдХреЗ рдЙрддреНрдкрд╛рджреЛрдВ, рд╕реЗрдЯреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛рдУрдВ, рд╕реЗрдЯреЛрдВ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ, рд╕реЗрдЯреЛрдВ рдХреА рд╕реВрдЪрд┐рдпреЛрдВ рдФрд░ рд╕реЗрдЯреЛрдВ рд╕реЗ рдирд┐рд░реНрдорд┐рдд рдЕрдиреНрдп рдкреНрд░реЗрд░рдХ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╕рд╣реА рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдпрджрд┐ рд╣рдо рдХреЗрд╡рд▓ рдРрд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдирд┐рд░реНрдорд╛рдгреЛрдВ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдордирдорд╛рдиреЗ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╕реЛрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЗрд╕ рд╡рд┐рдзреЗрдп рдХреЛ рд╕рдВрддреБрд╖реНрдЯ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред Coq рдореЗрдВ рдкрд╛рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рдкреНрд░рдХрд╛рд░
рд╕реЗрдЯ рд╣реИрдВ ред
рдпрджрд┐ рдЖрдк рд╣реЛрдореЛрдЯреЙрдкреА рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рд╕реЗ рдирд┐рдкрдЯрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдЯрд╛рдЗрдк рд╕реЗрдЯ рдЙрдкрдпреЛрдЧреА рдирд╣реАрдВ рд╣реИрдВред рдЕрднреА рдХреЗ рд▓рд┐рдП, рд╣рдо рдХреЗрд╡рд▓
рдПрди-рдЖрдпрд╛рдореА рдХреНрд╖реЗрддреНрд░ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рд╡рд╛рд▓реЗ рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп
рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП рдкрд╛рдардХ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдЬреЛ рдПрдХ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИред
Arend рдХреЗ рдкрд╛рд╕ рдХреНрд░рдорд╢рдГ рд╡рд┐рд╢реЗрд╖ рдмреНрд░рд╣реНрдорд╛рдгреНрдб
\Prop
рдФрд░
\Set
, рдЬрд┐рд╕рдореЗрдВ рдХрдерди рдФрд░ рд╕реЗрдЯ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдпрджрд┐ рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЯрд╛рдЗрдк рдП
\Prop
(рдпрд╛
\Set
) рдмреНрд░рд╣реНрдорд╛рдВрдб рдореЗрдВ рд╕рдорд╛рд╣рд┐рдд рд╣реИ, рддреЛ Arend рдореЗрдВ рд╕рдВрдмрдВрдзрд┐рдд
isProp
(рдпрд╛
isSet
)
isSet
рдХреЗ рдкреНрд░рдорд╛рдг рдХреЛ рдкреВрд░реНрд╡ рдореЗрдВ рдирд┐рд░реНрдорд┐рдд
Path.inProp
axiom рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рд╣рдо рдЗрд╕ axiom рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрддреЗ рд╣реИрдВ) рдЦрдВрдб 2.3 рдореЗрдВ)ред
\func inProp {A : \Prop} : \Pi (aa' : A) -> a = a'
рд╣рдо рдкрд╣рд▓реЗ рд╣реА рдиреЛрдЯ рдХрд░ рдЪреБрдХреЗ рд╣реИрдВ рдХрд┐ рдкреНрд░рдХрд╛рд░реЛрдВ рдкрд░ рд╕рднреА рдкреНрд░рд╛рдХреГрддрд┐рдХ рдирд┐рд░реНрдорд╛рдгреЛрдВ рдХреЛ
isProp
рд╕рдВрдкрддреНрддрд┐ рдмрд░рдХрд░рд╛рд░ рдирд╣реАрдВ
isProp
рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рджреЛ рдпрд╛ рдЕрдзрд┐рдХ рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЖрдЧрдордирд╛рддреНрдордХ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдЗрд╕реЗ рдХрднреА рд╕рдВрддреБрд╖реНрдЯ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╣рдо рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдмрдпрд╛рди рдореЗрдВ рдмрджрд▓ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ
рдкреНрд░реЛрдкреЛрдЬрд╝рд▓ рдЯреНрд░рдВрдХреЗрд╢рди рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
Arend рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ, рдкреНрд░реЛрдкреЛрдЬрд╝рд▓ рдЯреНрд░рдВрдХреЗрд╢рди рдХреЗ рдорд╛рдирдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ
Logic.TruncP
рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рдо рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рддрд╛рд░реНрдХрд┐рдХ "рдпрд╛" рдХреЛ Arend рдореЗрдВ рдЯрд╛рдЗрдк рдХреЗ рдпреЛрдЧ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реБрдП рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
\data \fixr 2 Or (AB : \Type) -- Sum of types; analogue of Coq's type "sum" | inl A | inr B \func \infixr 2 || (AB : \Type) => TruncP (sum AB) -- Logical тАЬorтАЭ, analogue of Coq's type "\/"
Arend рдореЗрдВ, рдкреНрд░реЛрдкреЛрдЬрд╝рд▓реА рдЯреНрд░рдВрдХреЗрдЯреЗрдб рдЗрдВрдбрдХреНрдЯрд┐рд╡ рдЯрд╛рдЗрдк рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рд╕рд░рд▓ рдФрд░ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рддрд░реАрдХрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдмрд╕
\truncated
рдХреАрд╡рд░реНрдб рдЬреЛрдбрд╝реЗрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, Arend рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рдПрдХ рддрд╛рд░реНрдХрд┐рдХ "рдпрд╛" рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рджреА рдЧрдИ рд╣реИред
\truncated \data \infixr 2 || (AB : \Type) : \Prop -- Logical тАЬorтАЭ, analogue of Coq's type "\/" | byLeft A | byRight B
рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдХрд╛рдЯ-рдЫрд╛рдБрдЯ рдХрд┐рдП рдЧрдП рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдЖрдЧреЗ рдХреЗ рдХрд╛рдо рдХреЛрдХ рдореЗрдВ
Prop
рдмреНрд░рд╣реНрдорд╛рдВрдб рдХреЛ рд╕реМрдВрдкреЗ рдЧрдП рдкреНрд░рдХрд╛рд░реЛрдВ рд╕реЗ рдорд┐рд▓рддреЗ рдЬреБрд▓рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рд╡реИрд░рд┐рдПрдмрд▓ рдХрд╛ рдкреИрдЯрд░реНрди рдорд┐рд▓рд╛рди рдЬрд┐рд╕рдХрд╛ рдкреНрд░рдХрд╛рд░ рдПрдХ рдХрдерди рд╣реИ рдХреЗрд╡рд▓ рдПрдХ рдРрд╕реА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЕрдиреБрдорддрд┐ рджреА рдЬрд╛рддреА рд╣реИ рдЬрд╣рд╛рдВ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рд╣рдореЗрд╢рд╛ рдЖрд╕рд╛рди рд╣реЛрддрд╛
Or-to-||
рдирдореВрдиреЗ рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рд▓реЗрдХрд┐рди рдпрд╣ рдЙрд▓рдЯрд╛ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ, рдХреЗрд╡рд▓ рдЕрдЧрд░ рдЯрд╛рдЗрдк рдП
`Or`
рдмреА рдПрдХ рдмрдпрд╛рди рд╣реИ (рдЬреЛ рдХрд┐ рдХрд╛рдлреА рджреБрд░реНрд▓рдн рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм рдкреНрд░рдХрд╛рд░
A
рдФрд░
B
рджреЛрдиреЛрдВ рдмрдпрд╛рди рдФрд░ рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рдкрд░рд╕реНрдкрд░ рдЕрдирдиреНрдп рд╣реИрдВ)ред
\func Or-to-|| {AB : \Prop} (a-or-b : A `Or` B) : A || B | inl a => byLeft a | inr b => byRight
рдпрд╣ рднреА рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ Coq рдореЗрдВ рдмреНрд░рд╣реНрдорд╛рдВрдбреЛрдВ рдХреЗ рддрдВрддреНрд░ рдХреА рдЦрд╝рд╛рд╕рд┐рдпрдд рдпрд╣ рд╣реИ рдХрд┐ рдЕрдЧрд░ рдХреБрдЫ рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЛ
Prop
рдмреНрд░рд╣реНрдорд╛рдВрдб рдХреЛ рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдЧрдгрдирд╛ рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдЗрд╕ рдХрд╛рд░рдг рд╕реЗ, рдЦреБрдж рдХреЛрдХ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдкреНрд░рдкреЛрдЬрд▓ рдХрдВрд╕реНрдЯреНрд░рдХреНрд╢рди
рдХреЗ рдЙрдкрдпреЛрдЧ рдХреА
рдЕрдиреБрд╢рдВрд╕рд╛ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ , рд▓реЗрдХрд┐рди рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ рддреЛ рдЙрдиреНрд╣реЗрдВ рд╕реЗрдЯ рдХреЗ рдмреНрд░рд╣реНрдорд╛рдВрдб рд╕реЗ рдПрдирд╛рд▓реЙрдЧреНрд╕ рдХреЗ рд╕рд╛рде рдмрджрд▓рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддреЗ рд╣реИрдВред рдПрд░реЗрдиреНрдб рдмреНрд░рд╣реНрдорд╛рдВрдбреЛрдВ рдХреЗ рддрдВрддреНрд░ рдореЗрдВ рдпрд╣ рдХрдореА рдирд╣реАрдВ рд╣реИ, рдЕрд░реНрдерд╛рдд, рдХреБрдЫ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдЧрдгрдирд╛ рдореЗрдВ рдмрдпрд╛рдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред рд╣рдо рдЗрд╕ рддрд░рд╣ рдХреА рд╕реНрдерд┐рддрд┐ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрдВрдЧреЗ рдЬрдм рд╣рдо рд╕реВрдЪреА рдХреЗ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░реЗрдВрдЧреЗред
Arend рдореЗрдВ 1.4 рдХрдХреНрд╖рд╛рдПрдВ
рдЪреВрдВрдХрд┐ рд╣рдорд╛рд░рд╛ рд▓рдХреНрд╖реНрдп рд╕рд░рд▓рддрдо рд╕реЙрд░реНрдЯрд┐рдВрдЧ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдкрд░рд┐рдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИ рддрд╛рдХрд┐ рдЕрд░рдорд╛рди рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рдЙрдкрд▓рдмреНрдз рдСрд░реНрдбрд░ рдХрд┐рдП рдЧрдП рд╕реЗрдЯреЛрдВ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде рдЦреБрдж рдХреЛ рдкрд░рд┐рдЪрд┐рдд рдХрд░рд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗред
Arend рдореЗрдВ, рдХрдХреНрд╖рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рдВрдЪрд╛рд▓рди рдФрд░ рд╕реНрд╡рдпрдВрд╕рд┐рджреНрдзреЛрдВ рдХреЛ рдПрдирдХреИрдкреНрд╕реБрд▓реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдЧрдгрд┐рддреАрдп рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рд╡рд┐рд░рд╛рд╕рдд рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рдЗрди рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдзреЛрдВ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреАред рдХрдХреНрд╖рд╛рдПрдВ рднреА рдирд╛рдо рд╕реНрдерд╛рди рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рдЕрдВрджрд░ рдирд┐рд░реНрдорд╛рдг рдФрд░ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХреЛ рд╕реНрдерд╛рди рджреЗрдирд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ рдЬреЛ рдЕрд░реНрде рдореЗрдВ рдЙрдкрдпреБрдХреНрдд рд╣реИрдВред
рдмреЗрд╕ рдХреНрд▓рд╛рд╕, рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рд╕рднреА рдСрд░реНрдбрд░ рдХреНрд▓рд╛рд╕реЗрд╕ рдХреЛ Arend рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИ,
BaseSet
рдХреНрд▓рд╛рд╕ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╣реЛрд╕реНрдЯ рд╕реЗрдЯ рдХреЗ рд▓рд┐рдП рдкрджрдирд╛рдо
E
рдЕрд▓рд╛рд╡рд╛ рдХреЛрдИ рднреА рд╕рджрд╕реНрдп рдирд╣реАрдВ рд╣реИ (рдпрд╛рдиреА, рд╡рд╣ рд╕реЗрдЯ рдЬрд┐рд╕ рдкрд░
BaseSet
рд╡рдВрд╢рдЬ
BaseSet
рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╡рд┐рднрд┐рдиреНрди рдСрдкрд░реЗрд╢рди рд╣реИрдВ)ред рдорд╛рдирдХ рдПрд░реЗрдиреНрдб рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реЗ рдЗрд╕ рд╡рд░реНрдЧ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред
\class BaseSet (E : \Set) -- ,
рдЙрдкрд░реЛрдХреНрдд рдкрд░рд┐рднрд╛рд╖рд╛ рдореЗрдВ, рд╡рд╛рд╣рдХ
E
рдПрдХ рд╡рд░реНрдЧ рдкреИрд░рд╛рдореАрдЯрд░ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛
E
ред рдХреЛрдИ рдкреВрдЫ рд╕рдХрддрд╛ рд╣реИ рдХрд┐, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░рд┐рднрд╛рд╖рд╛ рд╕реЗ
BaseSet
рдХреА рдЙрдкрд░реЛрдХреНрдд рдкрд░рд┐рднрд╛рд╖рд╛ рдореЗрдВ рдХреЛрдИ рдЕрдВрддрд░ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╡рд╛рд╣рдХ рдИ рдХреЛ рдПрдХ рд╡рд░реНрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ?
\class BaseSet' -- | E : \Set
рдереЛрдбрд╝рд╛ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдЙрддреНрддрд░ рдпрд╣ рд╣реИ рдХрд┐ Arend рдореЗрдВ рдЗрд╕ рдЕрд░реНрде рдореЗрдВ рджреЛ рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ
рдХреЛрдИ рдЕрдВрддрд░ рдирд╣реАрдВ рд╣реИ рдХрд┐ Arend
рдореЗрдВ рдХреЛрдИ рднреА рдХреНрд▓рд╛рд╕ рдкреИрд░рд╛рдореАрдЯрд░ (рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдирд┐рд╣рд┐рдд), рд╡рд╛рд╕реНрддрд╡
рдореЗрдВ рдЗрд╕рдХрд╛ рдХреНрд╖реЗрддреНрд░ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░,
BaseSet
рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП, рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐
xE
рдХрд╛ рдЙрдкрдпреЛрдЧ рдлрд╝реАрд▓реНрдб рдИ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддрд╛ рд╣реИред
BaseSet
рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рдЙрдкрд░реЛрдХреНрдд рд╡реЗрд░рд┐рдПрдВрдЯ рдХреЗ рдмреАрдЪ рдЕрднреА рднреА рдПрдХ рдЕрдВрддрд░ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрдзрд┐рдХ рд╕реВрдХреНрд╖реНрдо рд╣реИ, рд╣рдо рдЕрдЧрд▓реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдЗрд╕рдХреА рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдЬрд╛рдВрдЪ рдХрд░реЗрдВрдЧреЗ рдЬрдм рд╣рдо рдХрдХреНрд╖рд╛ рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░реЗрдВрдЧреЗ ( рд╡рд░реНрдЧ рдЙрджрд╛рд╣рд░рдг)ред
рдХрд┐рд╕реА рд╕реВрдЪреА рдХреЛ рдЫрд╛рдБрдЯрдиреЗ рдХреА рдХреНрд░рд┐рдпрд╛ рддрднреА рд╕рдордЭ рдореЗрдВ рдЖрддреА рд╣реИ рдЬрдм рд╕реВрдЪреА рдореЗрдВ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд░ рдПрдХ рд░реЗрдЦреАрдп рдХреНрд░рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдкрд╣рд▓реЗ рдПрдХ
рд╕рдЦреНрдд рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рд╕реЗрдЯ рдХреА рдЧрдИ рдкрд░рд┐рднрд╛рд╖рд╛ рдФрд░ рдПрдХ
рд░реИрдЦрд┐рдХ рдХреНрд░рдордмрджреНрдз рд╕реЗрдЯ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред \class StrictPoset \extends BaseSet { | \infix 4 < : E -> E -> \Prop | <-irreflexive (x : E) : Not (x < x) | <-transitive (xyz : E) : x < y -> y < z -> x < z } \class LinearOrder \extends StrictPoset { | <-comparison (xyz : E) : x < z -> x < y || y < z | <-connectedness (xy : E) : Not (x < y) -> Not (y < x) -> x = y }
рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рдЕрд░рд┐рдВрдж рдореЗрдВ рд╡рд░реНрдЧреЛрдВ рдХреЛ рдЕрдиреБрдорд╛рдиреЛрдВ рдФрд░ рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рд╕рд╛рде рд╕рд┐рдЧреНрдорд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдПрдирд╛рд▓реЙрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред , Arend- -, .
,
. , . , StrictPoset
<-irreflexive
<-transitive
,
E
<
тАФ . , (, , ) , .
, , . , Arend
, , . , . , , , , .
:
\class DecSet \extends BaseSet | decideEq (xy : E) : Dec (x = y)
Dec
,
Dec E
,
E
,
E
,
E
.
\data Dec (E : \Prop) | yes E | no (Not E)
, ,
Dec
( decidable)
Order.LinearOrder
. Dec , , ,
trichotomy
, ,
E
, <. ,
Dec
Comparable Java.
\class Dec \extends LinearOrder, DecSet { | trichotomy (xy : E) : (x = y) || (x < y) || (y < x) | <-comparison xyz x<z => {?} -- | <-connectedness xyx/<yy/<x => {?} | decideEq xy => {?} }
Dec
Dec
, , , , .
Dec
, .
,
Dec
( ).
Dec
, Arend (
Dec
LinearOrder,
DecSet
), , (diamond inheritance).
: , ( , ).
Dec
Order.LinearOrder
IDEA ( [Ctrl]+[H]), , .

Arend ( IDEA
BaseSet
). , .
1.5 , , .
StrictPoset
Nat. Arend , . -, , , - ( ), .
: . .
data \infix 4 < (ab : Nat) \with | zero, suc _ => zero<suc_ | suc a, suc b => suc<suc (a < b) \lemma irreflexivity (x : Nat) (p : x < x) : Empty | suc a, suc<suc a<a => irreflexivity a a<a \lemma transitivity (xyz : Nat) (p : x < y) (q : y < z) : x < z | zero, suc y', suc z', zero<suc_, suc<suc y'<z' => zero<suc_ | suc x', suc y', suc z', suc<suc x'<y', suc<suc y'<z' => suc<suc (transitivity x' y' z' x'<y' y'<z')
\func
\lemma
. , , , . ,
\lemma
,
\Prop
.
x'<y'
тАФ -,
x' < y'
. - (.. , , ).
(instance)
StrictPoset
. Arend .
\new
. ┬л ┬╗.
\func NatOrder => \new StrictPoset { | E => Nat | < => < | <-irreflexive => irreflexivity | <-transitive => transitivity }
StrictPoset { тАж }
\new
: -
StrictPoset
. - , , ,
\new
.
\new C { тАж }
C { тАж }
. C, C. , ,
NatOrder
StrictPoset
.
, . ,
StrictPoset Nat
StrictPoset { | E => Nat }
. ,
NatOrder
StrictPoset
, ( ).
NatOrder
\cowith
( - ).
\func NatOrder : StrictPoset \cowith { | E => Nat | < => < | <-irreflexive => irreflexivity | <-transitive => transitivity }
, ,
\instance.
\instance NatOrder : StrictPoset { | E => Nat | < => < | <-irreflexive => irreflexivity | <-transitive => transitivity }
Arend , Haskell.
NatOrder
\instance
\cowith
,
StrictPoset
( ).
,
BaseSet
- E ( ), , E . .
, Arend . Arend , , ( , ┬л
┬╗
\classifying \field
, Arend ). :
- Arend . ,
X
StrictPoset
, List X
List XE
.
- Arend .
, . ,
\instance
StrictPoset
,
Nat
Int
(
NatOrder
IntOrder
).
,
x < y
, x, y , , x, y . Arend ,
NatOrder.<
, тАФ
IntOrder.<
.
, . Arend , <
StrictPoset
, E. , Arend
x<y
StrictPoset
( ), E . ,
<
.
, Arend. ,
\use \coerce
. Arend
тАФ , , . - ,
\where
.
.
fromNat
.
\data Int | pos Nat | neg Nat \with { zero => pos zero } \where { \use \coerce fromNat (n : Nat) => pos n }
\use \coerce
\func
, . , , (, , ).
:
HoTT JetBrains Research.