Coqの定理証明
バックグラウンド 私はCoqだけで支援を学んでいます。これまでのところ、急いでイヴベルトットのコックを読み終えました。現在、私の目標は、いわゆる除算アルゴリズムで終わる、自然数に関するいくつかの基本的な結果を証明することです。しかし、私はその目標に向かう途中でいくつかの後退に遭遇しました。特に、次の2つの結果は、私が最初に想像したよりもCoqで証明するのが難しいことを示しています(しゃれた意図)。実際、多くの実りのない試みの後、私はそれらを手動で証明する手段を講じました(以下に示すように)。これは明らかに、私がCoqの処理に習熟するのに役立つわけではありません。これが私がこのフォーラムを利用する理由です。私の希望は、このサイトの誰かが有能で喜んでいることです下記の証明をCoqが受け入れる証明に変換するのに役立ちます。すべての助けに心から感謝しています! 定理A すべてのための証明:x,y∈Nx,y∈Nx,y \in N x<S(y)⊂x<y∨I(N,x,y)x<S(y)⊂x<y∨I(N,x,y)\begin{equation} x < S(y) \subset x < y \lor \text{I}(N,x,y) \end{equation} と仮定します。したがって、と ため、(Peano 1bおよび3)x<S(y)x<S(y)x < S(y)z∈Nz∈Nz \in NI(N,x+S(z),S(y))(*)(*)I(N,x+S(z),S(y))\begin{equation} \text{I}(N,x+S(z),S(y)) \tag{*}\end{equation}I(N,x+z,y)I(N,x+z,y)\begin{equation} \text{I}(N,x+z,y) \end{equation} 述語を定義しQ(u):=(I(N,x+u,y)⊂x<y∨I(N,x,y)Q(u):=(I(N,x+u,y)⊂x<y∨I(N,x,y)\begin{equation} Q(u):=(\text{I}(N,x+u,y) \subset xy¬I(N,x,y)¬I(N,x,y)\neg \text{I}(N,x,y)x>yx>yx>y y>xy>xy>xI(N,x,y)I(N,x,y)\text{I}(N,x,y) 我々は維持上に固定し、入会を。場合我々は全てに対して基本ケースを証明します。次に、定理がについて成立するとします。ここで、定理を証明したいと思います。のトリコトミーから、と 3つのケースがあり。もし、次いで明確。もし、次いで、(ASのためのすべて)。最後に、yyyxxxI(N,0,y)I(N,0,y)\text{I}(N,0,y)0<y∨I(N,0,y)0<y∨I(N,0,y)0 < y \lor \text{I}(N,0,y)yyyxxxS(x)S(x)S(x)xxxx<y,I(N,x,y)x<y,I(N,x,y)xyx>yx>yx>yS(x)>yS(x)>yS(x) >yI(N,x,y)I(N,x,y)\text{I}(N,x,y)S(x)>yS(x)>yS(x) >yS(x)>xS(x)>xS(x) >xx∈Nx∈Nx\in \mathbb{N}x<yx<yx <y次に、定理Aによってまたはが得られ、どちらの場合も完了です。 S(x)<yS(x)<yS(x) < yI(N,S(x),y)I(N,S(x),y)\text{I}(N,S(x),y)(□)(◻)\begin{equation} \tag{$\square$} \end{equation} …