タグ付けされた質問 「logic」

数学的論理とコンピューターサイエンスでのその使用に関する質問

7
4つのNANDゲートのみを使用してXORゲートを構築する方法は?
xorゲート、今、私は4つのnandゲートのみを使用してこのゲートを構築する必要があります a b out 0 0 0 0 1 1 1 0 1 1 1 0 xor = (a and not b) or (not a and b)である、 A¯¯¯¯B+AB¯¯¯¯A¯B+AB¯\begin{split}\overline{A}{B}+{A}\overline{B}\end{split} 私は答えを知っていますが、式からゲート図を取得する方法は? 編集 私が直感的に意味するのは、ステップバイステップで定義を実行した場合、これを取得する必要があることですxor = (a and not b) or (not a and b)。 A¯¯¯¯B¯¯¯¯¯¯¯¯⋅AB¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯A¯B¯⋅AB¯¯¯\begin{split}\overline{\overline{\overline{A}{B}}\cdot\overline{{A}\overline{B}}}\end{split} 及びxor5つので構成するnandゲート(以下第1位の画像) 私の質問はもっと似ています:歴史の最初の人がこの式を理解していることを想像してくださいnand。 A¯¯¯¯B+AB¯¯¯¯A¯B+AB¯\begin{split}\overline{A}{B}+{A}\overline{B}\end{split}

4
プルーフの階層のリポジトリはありますか?
私は自己学習のプルーフアシスタントであり、いくつかの基本的なプルーフから始めて、さらに上に進むことを決めました。プルーフは他のプルーフに基づいているため、階層を形成するため、プルーフの階層のリポジトリはありますか? 特定の証明アシスタントを選択し、そのライブラリを分析してその階層を抽出できることは知っていますが、証明するためにチェーン内の次の証明を見つけたい場合、それがライブラリにない場合は見つけることができません。 私の頭の中では、おそらく写真を使った証明ではなく、英語のステートメントを使って表現できる既知の数学的証明のすべてのグラフ、おそらくDAG を描きます。これはマスターマップ(ある地点から始まり、中間地点を経由して別の地点に移動するという意味のマップ)であり、特定の証明アシスタントの場合、マスターマップのサブグラフがあります。次に、サブグラフ上ではなくマスター上にある証明アシスタントを使用して証明を作成したい場合、2つのグラフを比較することで、証明アシスタントの欠落している証明の作成に必要な作業のアイデアを得ることができます。 数学的な証明は、証明アシスタントで使用するために必ずしも簡単に変換できるわけではないことを承知していますが、何をするかについての一般的な考えは、まったくないよりもはるかに優れています。 また、マスターマップを作成することで、ある地点から他の地点までの複数のパスがあるかどうかを確認し、特定の証明アシスタントが受け入れやすいパスを選択できます。 編集 検索で数学関数に類似するものを見つけました。NISTで証明用のものを見つけられませんでした

1
製品タイプとタイプ推論
私は、連結言語用のコンパイラに取り組んでおり、型推論のサポートを追加したいと考えています。Hindley–Milnerは理解していますが、型理論を学んでいるので、それをどのように適応させるかわかりません。次のシステムは健全で、決定的に推測できますか? 用語は、リテラル、用語の構成、用語の引用、またはプリミティブです。 e::=x∣∣ee∣∣[e]∣∣…e::=x|ee|[e]|… e ::= x \:\big|\: e\:e \:\big|\: [e] \:\big|\: \dots すべての用語は関数を示します。2つの関数およびe 2の場合、e 1e1e1e_1e2e2e_2並置が逆組成を示しています。リテラルはニラディック関数を示します。e1e2=e2∘e1e1e2=e2∘e1e_1\:e_2 = e_2 \circ e_1 構成以外の用語には、基本的なタイプルールがあります。 x:ι[Lit]Γ⊢e:σΓ⊢[e]:∀α.α→σ×α[Quot],α not free in Γx:ι[Lit]Γ⊢e:σΓ⊢[e]:∀α.α→σ×α[Quot],α not free in Γ \dfrac{}{x : \iota}\text{[Lit]} \\ \dfrac{\Gamma\vdash e : \sigma}{\Gamma\vdash [e] : \forall\alpha.\:\alpha\to\sigma\times\alpha}\text{[Quot]}, \alpha \text{ not free in } \Gamma 連結言語にはアプリケーションルールがないため、アプリケーションのルールは特にありません。 型は、リテラル、型変数、またはスタックからスタックへの関数のいずれかです。ここで、スタックは右ネストされたタプルとして定義されます。すべての関数は、「残りのスタック」に関して暗黙的にポリモーフィックです。 τρσ::=ι∣∣α∣∣ρ→ρ::=()∣∣τ×ρ::=τ∣∣∀α.στ::=ι|α|ρ→ρρ::=()|τ×ρσ::=τ|∀α.σ …

2
満足できない3-CNF式の例は何ですか?
私は、SAT / 3CNF-SATを中心とするNP完全性証明に頭を包もうとしています。 たぶんそれは遅い時間かもしれませんが、私は満足できない3CNF式を考えることができないのではないかと思います(おそらく明らかな何かを見逃しています)。 そのような式の例を教えてもらえますか?

2
ラムダ計算の「適用順序」と「通常順序」
適用順序:関数自体を評価する前に、常に関数の引数を完全に評価します- (λx.x2(λx.(x+1) 2)))→(λx.x2(2+1))→ (λx.x2(3))→ 32 → 9(λx.x2(λx.(x+1) 2)))→(λx.x2(2+1))→ (λx.x2(3))→ 32 → 9(\lambda x. x^2(\lambda x.(x+1) \ \ 2))) \rightarrow (\lambda x. x^2(2+1))\rightarrow \ (\lambda x. x^2(3)) \rightarrow \ 3^2 \ \rightarrow \ 9 通常の順序:式はのように外側から縮小されます- (λx.x2(λx.(x+1) 2))→ (λx.(x+1) 2)2→ (2+1)2 →32 → 9(λx.x2(λx.(x+1) 2))→ (λx.(x+1) 2)2→ (2+1)2 →32 → 9(\lambda x.x^2 …

2
シンプルな書き換えシステムの合流性証明
次の用語で構成される単純な言語があるとします。 truetrue\mathtt{true} falsefalse\mathtt{false} 場合用語では、次いで、そうでi ft1,t2,t3t1,t2,t3t_1,t_2,t_3ift1thent2elset3ift1thent2elset3\mathtt{if}\: t_1 \:\mathtt{then}\: t_2 \:\mathtt{else}\: t_3 ここで、次の論理評価ルールを想定します。 iftruethent2elset3→t2[E-IfTrue]iffalsethent2elset3→t3[E-IfFalse]t1→t′1ift1thent2elset3→ift′1thent2elset3[E-If]iftruethent2elset3→t2[E-IfTrue]iffalsethent2elset3→t3[E-IfFalse]t1→t1′ift1thent2elset3→ift1′thent2elset3[E-If] \begin{gather*} \dfrac{} {\mathtt{if}\: \mathtt{true} \:\mathtt{then}\: t_2 \:\mathtt{else}\: t_3 \to t_2} \text{[E-IfTrue]} \quad \dfrac{} {\mathtt{if}\: \mathtt{false} \:\mathtt{then}\: t_2 \:\mathtt{else}\: t_3 \to t_3} \text{[E-IfFalse]} \\ \dfrac{t_1 \to t_1'} {\mathtt{if}\: t_1 \:\mathtt{then}\: t_2 \:\mathtt{else}\: t_3 \to \mathtt{if}\: t_1' \:\mathtt{then}\: t_2 \:\mathtt{else}\: …

5
命題論理と述語論理を学ぶ理由
コンピューター科学者またはソフトウェア開発関連のエンジニアが基礎としての基本的なロジックの研究を理解する必要があることの重要性を理解できます。 しかし、あらゆる種類の知識表現を必要とするタスク以外に、これらに関する知識を明示的に必要とするタスク/ジョブはありますKnowledge Baseか?概念的な応答ではなく、タスクの種類を聞きたいです。 私がこれを尋ねる理由は、私の好奇心からです。CSの学生はこのテーマに一定の時間を費やす必要がありますが、一部の実用的な集中コース(AIクラスなど)はこのトピックを完全にスキップしました。そして、例えば、知っていることpredicate logicは絵を描くのに役立つER diagramかもしれないが、要件ではないかもしれないと思う。 アップデート5/27/2012)回答ありがとうございます。今、私logicはCSの膨大なアプリケーションの重要性を完全に理解し、同意していると思います。Windowsブルースクリーンの問題の解決策によって得られた印象から、本当に最高の答えを選んだだけです。
14 logic 

1
「有名な論理学者はここで恥ずかしいエラーを犯しました」と、SICPの行。これは何を指しているのですか?
コンテキストは次のとおりです(コンピュータープログラムの構造と解釈、セクション1.1.8、「ローカル名」という見出しの下)。 プロシージャの仮パラメータは、仮パラメータの名前が何であるかは関係ないという点で、プロシージャ定義において非常に特別な役割を果たします。このような名前はバインド変数と呼ばれ、プロシージャ定義はその仮パラメータをバインドすると言います。バインドされた変数の名前が定義全体で一貫して変更されている場合、プロシージャ定義の意味は変わりません。 その最後の行の最後に、脚注(26)があります。 一貫した名前変更の概念は実際には微妙であり、正式に定義するのは困難です。有名な論理学者はここで恥ずかしいエラーを犯しました。 テキストは何を指しているのですか?「一貫性のある名前の変更」を定義するのが難しいのはなぜですか、どの論理学者がこれを定義しようとしてエラーを犯しましたか?
13 logic 

1
これは、再帰プロシージャを末尾再帰に変換する一般的な方法ですか?
私が変換する一般的な方法見つけたようだ任意の末尾再帰に再帰的な手順を: 追加の「結果」パラメーターを使用して、ヘルパーサブプロシージャを定義します。 プロシージャの戻り値に適用されるものをそのパラメータに適用します。 このヘルパープロシージャを呼び出して開始します。「結果」パラメーターの初期値は、再帰プロセスの終了点の値であるため、結果の反復プロセスは、再帰プロセスが縮小し始めるところから始まります。 たとえば、変換する元の再帰的手順は次のとおりです(SICP演習1.17)。 (define (fast-multiply a b) (define (double num) (* num 2)) (define (half num) (/ num 2)) (cond ((= b 0) 0) ((even? b) (double (fast-multiply a (half b)))) (else (+ (fast-multiply a (- b 1)) a)))) 変換された末尾再帰手続き(SICP演習1.18)は次のとおりです。 (define (fast-multiply a b) (define (double n) (* …

1
任意の証明が円形であるかどうかのテスト?
私は証明について考えていて、興味深い観察に出会いました。そのため、証明はカリー・ハワード同型写像によるプログラムと同等であり、循環証明は無限再帰に対応します。しかし、停止する問題から、任意のプログラムが永久に再帰するかどうかを一般的にテストすることは決定できないことがわかります。カリー・ハワードによると、それは、証明が循環推論を使用するかどうかを判断できる「証明チェッカー」がないことを意味しますか? 私はいつも、証明は簡単に確認できるステップ(推論ルールの適用に対応する)で構成されると考えられていました。すべてのステップを確認することで、結論が続くという確信が得られます。しかし、今私は不思議に思っています:停止問題を回避して循環推論を検出する方法がないため、そのような証明チェッカーを書くことは実際には不可能ですか?

1
ダミーのための単項二次論理
私はプログラマーであり、オートマトンに精通していますが、ロジックには精通していません。 私は論文で、この2つは非常に密接に関連していると読みました。確定的有限オートマトン(DFA)、ツリーオートマトン、および可視プッシュダウンオートマトンは、すべてモナド2次論理(MSO)に関連しています。オートマトンと(論文の)人はMSOとの関係を私に説明しようとしたが、彼らは常に論理とMSOの理解の強い背景を前提としている。 ロジックに関する本やコースを見ると、ほとんどが一次ロジックのみを処理しますが、これは非常に単純で、いくつかの概念のみで構成されています:変数、または、ない、含意、すべて、存在など 誰かが説明したり、説明できるリソースを教えてくれたりできますか? 一次論理と対照的な二次論理とは何ですか? モナドと非モナドのロジックとは何ですか? なぜ二次論理が単項であることが決定可能になることが重要なのか、またはなぜこれが間違った質問なのか? なぜ単項二次論理が決定可能か? 少なくともDFAとの関係は? それがリソースである場合、私がプログラマーであり、論理学者ではないことを前提とすれば良いでしょう。これは、それまでは数学が私にとって魔法のように感じるので、コードとしてどのように実装するかを理解したいということです;) 助けてくれてありがとう。とても感謝しております。

2
「依存型」を持つことで何が得られますか?
依存型(DT)を適切に理解していると思いましたが、この質問への回答:https : //cstheory.stackexchange.com/questions/30651/why-was-there-a-need-for-martin-l%C3% B6f-to-create-intuitionistic-type-theoryは、そうでなければ考えさせられました。 DTを読み、それらが何であるかを理解しようとした後、このDTの概念によって何が得られるのだろうかと考えています。「方法/理由」を正確に理解することはできませんが、単純に型付けされたラムダ計算(STLC)よりも柔軟で強力なようです。 STLCではできないDTでできることは何ですか?DTを追加すると理論がより複雑になりますが、どのような利点がありますか? 上記の質問に対する答えから: 依存型は、BruijnとHowardによって提案され、Courry-Howardの対応を命題論理から1次論理に拡張したいと考えました。 これはあるレベルでは理にかなっているように見えますが、それでも「どうして/なぜ」という大局を理解することはできません。たぶん、FOロジックへのCHの対応のこの拡張を明示的に示す例は、DTで何が大事なのかを理解する上で重要なポイントを見つけるのに役立つでしょうか?これを理解すべきかどうかは定かではありません。

5
健全性が一貫性を意味するのはなぜですか?
一貫性と完全性は健全性を意味するという質問を読んでいましたか?そして、その中の最初の文は言う: 健全性は一貫性を意味することを理解しています。 健全性は一貫性よりも弱い表現だと思っていたので、私は非常に困惑していました(つまり、一貫性のあるシステムは健全でなければならないと思っていましたが、それは真実ではないと思います)。一貫性と健全性のために、MITの6.045 / 18.400コースで Scott Aaronsonが使用していた非公式の定義を使用していました。 健全性=証明システムは、証明するすべてのステートメントが実際に真実である場合に証明されます(証明可能なものはすべて真実です)。すなわち、IF(は証明可能)(はTrue)。したがって、IF(式へのパスがあります)THEN(その式はTrueです)ϕϕ\phi⟹⟹\impliesϕϕ\phi 一貫性=一貫性のあるシステムは、決してAとNOT(A)を証明しません。したがって、1つのAまたはその否定のみがTrueになります。 これらの(おそらく非公式の)定義を念頭に置いて、健全ではあるが一貫性のないシステムがあることを示すために、次の例を作成しました。 CharlieSystem≜{Axioms={A,¬A},InferenceRules={NOT(⋅)}}CharlieSystem≜{Axioms={A,¬A},InferenceRules={NOT(⋅)}} CharlieSystem \triangleq \{ Axioms=\{A, \neg A \}, InferenceRules=\{NOT(\cdot) \} \} サウンドシステムだと思った理由は、公理が正しいと仮定するからです。したがって、AではなくAが両方とも当てはまります(はい、除外された中間の法則は含まれていません)。唯一の推論規則は否定であるため、公理からAではなくAの両方に到達し、互いに到達できることがわかります。したがって、このシステムに関してはTrueステートメントのみに到達します。ただし、システム内の唯一のステートメントの否定を証明できるため、もちろんシステムは一貫していません。したがって、サウンドシステムには一貫性がない可能性があることを示しました。この例が間違っているのはなぜですか?私は何を間違えましたか? 私の頭の中でこれは直感的に理にかなっています。健全性とは、推論ルールから始めて公理とクランクを設定すると、真の目的地(ステートメント)にのみ到達するということです。ただし、実際にどの目的地に到着したかはわかりません。ただし、一貫性は、または(両方ではない)に到達する宛先にのみ到達できることを示しています。したがって、すべての一貫したシステムには、公理として除外された中間の法則を含める必要があります。もちろん、私はそうではなく、唯一の公理の否定を他の公理として含めました。だから、私があまりにも賢いことをしたとは思わないが、どういうわけか何かが間違っていますか?¬ AAAA¬A¬A\neg A 私はスコットの非公式の定義を使用しているため、それが問題になる可能性があることに気づきました。質問を書く前でもウィキペディアをチェックしましたが、その定義は私には意味がありませんでした。特に彼らが言う部分: システムのセマンティクスに関して 完全な引用は次のとおりです。 システムで証明できるすべての式は、システムのセマンティクスに関して論理的に有効です。

2
建設的な論理における「矛盾」とは何ですか?
でプログラミング言語のための実用的な基礎、ロバート・ハーパー氏は述べています 命題が真であるということは、それを証明することを意味する場合、命題が偽であるとはどういう意味ですか?それは我々が持っていることを意味反論それは証明できないことを示して、それのを。つまり、命題は、それが真実である(証拠がある)という仮定が既知の事実と矛盾することを示すことができれば偽です。 しかし、その後、これは疑問を招きます-建設的/直観的論理の矛盾は何ですか? これは何らかの形でを派生させるという意味ですか?これは賢明な方法でどのように起こりますか?フォームの判断を導入する必要がありますか?(⊥ true)(⊥ true)(\bot\text{ true})(A⊃⊥ true)(A⊃⊥ true)(A \supset \bot \text{ true}) あるいは、読者の裁量で、何かを矛盾していると非公式にラベル付けするという意味では、おそらく意味がありますか?たとえば、とを対立する命題として解釈ます。a=ba=ba = ba≠ba≠ba \neq b
12 logic 

2
coqによるトートロジーの証明
現在、私はCoqを学ぶ必要があり、どのように対処するのかわかりませんor: 例として、それは簡単ですが、証明する方法がわかりません: Theorem T0: x \/ ~x. 誰かが私を助けることができれば、私は本当に感謝しています。 参考のために、このチートシートを使用します。 また、私が念頭に置いている証拠の例:二重否定の場合: Require Import Classical_Prop. Parameters x: Prop. Theorem T7: (~~x) -> x. intro H. apply NNPP. exact H. Qed.
12 logic  coq 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.