いいえ、この場合、偏見と単調性は密接に関連していません。
Coq / Adgaのポジティブチェックは、おおよそ単調なものの最小固定点を確実に取得するのに役立ちます。
格子と単調演算子の観点から帰納的型を考える方法は次のとおりです。Knaster-Tarskiの定理は、完全な格子、すべての単調演算子f :L → Lが最小不動点μ (f )を持っていることを思い出してください。次に、型理論の型は、証明可能性の下で格子を形成すると考えることができます。すなわち、入力Sが下にあるTの真実ならばSはのことを伴うT。今、私たちがやりたいことはモノトーンオペレータ取ることですFのLf:L→Lμ(f)STSTF、型に Knaster-Tarskiを使用してこの演算子の最小不動点の解釈を取得することです。 μ(F)
ただし、型理論の型は単なる格子ではありません。カテゴリを形成します。つまり、2つのタイプとTが与えられた場合、SがTより下になるには多くの方法があり、各証明eには1つの方法があります:S → T。したがって、型演算子Fは、これらの証明に対して賢明なことをしなければなりません。単調性の適切な一般化である関手。それは私たちが望む、あるFはタイプの演算子を持っている、とも、証明への作用を持っているようであればE :S → T、その後、F (STSTe:S→TFFe:S→T。F(e ):F(S)→ F(T)
現在、機能性は和と積によって保存されています(つまり、とGが型の内積関数である場合、F + GとF × G(点ごとに作用する)も型の関数関数です(代数に和と積があると仮定します)ただし、指数関数的バイファンクターF → Gはその左引数で反変であるため、関数空間によって保存されません。したがって、帰納的な型定義を記述するとき、ファンクターを定義して、最小固定点を取ります。それが確かにファンクターであることを保証するために、関数空間の左側にある再帰的パラメーターの出現を除外する必要があります---したがって、陽性チェックです。FGF+GF×GF→G
(System Fの意味での)不可逆性は一般に回避されます。これは、古典的論理と集合理論モデルの選択を強制する原則であるためです。Fスタイルのインデックス付けがある場合、型を古典的な集合論の集合として解釈することはできません。(レイノルズの有名な「ポリモーフィズムは集合論ではない」を参照。)
カテゴリ的に、Fスタイルの不可逆性は、タイプと用語のカテゴリが小さな完全なカテゴリを形成すると言います(つまり、homとオブジェクトは両方ともセットであり、すべての小さな図の制限が存在します)。古典的には、これはカテゴリーをポーズにすることを強制します。多くの構成主義者は建設的である。なぜなら、彼らの定理は単なる古典的な論理よりも多くのシステムで保持したいので、古典的に間違っていることを証明したくないからである。したがって、それらは、命令的多型に不信です。
ただし、ポリモーフィズムにより、型理論の内部で古典的に「大きい」多くの条件を言うことができます。多形項を生成できる場合、型演算子は関数です。F
Fmap:∀α,β.(α→β)→(F(α)→F(β))
これが機能性にどのように対応するかをご覧ください。IMO、これは一般的なプログラミングをはるかに簡単に行えるようになるため、Coqにある非常に素晴らしいオプションです。陽性チェックの構文的性質は、一般的なプログラミングの大きな障害であり、古典的な公理の可能性をより柔軟な機能的プログラムと引き換えに喜んでいます。
編集:PropとSetの違いについてあなたが尋ねている質問は、Coq開発者があなたがそうすることを強制することなく、必要に応じて素朴な集合理論用語でCoq定理について考えることを許可したいという事実から生じます。技術的には、プロップとセットを分割し、セットがプロップの計算内容に依存することを禁止します。
したがって、ZFCではPropを真理値として解釈できます。これはブール値trueとfalseです。この世界では、命題の証明はすべて平等であるため、明らかに命題の証明に分岐することはできません。したがって、Propの証明の計算内容に依存するセットの禁止は完全に理にかなっています。さらに、2要素のブールラティスは明らかに完全なラティスであるため、任意のset-valued meetが存在するため、命令型インデックス付けをサポートする必要があります。セットの優先性の制限は、上記のFスタイルのインデックス付けが古典的なセット理論モデルで縮退しているという事実から生じます。
Coqには他のモデルもあります(建設的なロジックです!)が、ポイントは、既成の数学者が困惑するようなことは何も証明しないということです。