Свързани въпроси 'coq'

Как да докажем x + y - z = x + (y - z) в Coq
Искам да докажа това: 1 subgoals x : nat y : nat z : nat ______________________________________(1/1) x + y - z = x + (y - z) Изглежда тривиално, но много ме обърква и ми трябва за поредното доказателство. Благодаря.
182 изгледи
schedule 01.10.2022

Без подразбиране в зависим модел на съвпадение с ssreflect
Струва ми се, че с ssreflect имплицитните полета на конструктора се превръщат в експлицитни полета, когато правим зависимо съвпадение на шаблони, и задаването на различни косвени опции не засяга това поведение. Следният код е добре с Coq 8.6:...
78 изгледи
schedule 30.09.2022

Доказване, че умножението е комутативно
Така че това е едно от упражненията, които работя от Софтуерни основи , в който трябва да докажа, че умножението е комутативно. И това е моето решение: Theorem brack_help : forall n m p: nat, n + (m + p) = n + m + p. Proof. intros n m p....
3072 изгледи
coq
schedule 11.10.2022

За пълно въвеждане в coq?
Опитвам се да докажа (класически). ~ (forall t : U, phi) -> exists t: U, ~phi в Coq. Това, което се опитвам да направя, е да го докажа контрапозитивно: 1. Assume there is no such t (so ~(exists t: U, ~phi)) 2. Choose arbitrary t0:U...
1396 изгледи
schedule 27.11.2022

Импредикативен полиморфизъм във F#
Системата за типове Hindley-Milner на OCaml не позволява непредсказуем полиморфизъм (à la System-F), освен чрез донякъде скорошно разширение за типове записи. Същото важи и за F#. Понякога обаче е желателно да се превеждат програми, написани с...
960 изгледи

Coq: Как да докажем a=b -› nat_compare a b = Eq.?
В опит да разбера какво представлява Coq, се озовах в ситуация, в която по същество трябва да докажа, че a=b -> nat_compare a b = Eq . Мога да започна удобно, като направя: Coq < Theorem foo: forall (a:nat) (b:nat), a=b->nat_compare a...
340 изгледи
schedule 14.11.2022

Защо „интуицията“ работи в примера на Coq?
Въпросът ми е: защо „интуицията“ работи в моя пример? Опитвам се да докажа Lemma eqb_false : forall n m : nat, eqb n m = false -> n <> m. На последната стъпка виждам n : nat IHn : forall m : nat, (n =? m) = false -> n...
772 изгледи
coq
schedule 03.11.2022

Доказване на if then else в Coq
Аз съм нов в Coq и се опитвам да докажа нещо доста основно Лема eq_if_eq : за всички a1 a2, (ако beq_nat a1 a2 тогава a2 else a1) = a1. Затруднявах се с решение, публикувано по-долу, но мисля, че трябва да има по-добър начин. В идеалния...
3704 изгледи
coq
schedule 30.01.2024

Как бих доказал, че b = c ако (и b b c = orb b c) в coq?
Нов съм в coq и се опитвам да докажа това... Theorem andb_eq_orb : forall (b c : bool), (andb b c = orb b c) -> (b = c). Ето моето доказателство, но се забивам, когато стигна до целта (false = true -> false = true). Proof. intros b...
750 изгледи
schedule 28.11.2023

Не може да се използва инверсия на индуктивен предикат
Заседнал съм на просто доказателство за индуктивен предикат. Трябва да докажа, че естествената 0 не е положителна, където естествената е списък от битове, а 0 е всеки списък само с битове, които са 0s. H1: pos Empt ____________ (1/1) Nat...
253 изгледи
schedule 01.03.2024

Механизмът за извличане на Coq генерира неуспех с AXIOM DA BE REALIZE
Имам модулна структура вътре в този модул. Декларирам използване на променлива за някаква функция вътре в module A . Module A. Variable a : nat. End A. След това използвам механизъм за извличане. Extraction Language Ocaml. Set...
251 изгледи
schedule 29.02.2024

Разлики между Coq и Agda
За какво е предназначена всяка от тези програми и какво предлага една на другата? Освен това и двете системи последователни ли са и освен това базирани ли са на някаква основополагаща математическа теория? Две неща ме интересуват: Лесен за...
5957 изгледи
schedule 05.04.2024

coq Hello World пример (с opam) не може да намери библиотеки
Следвах урок за coq HelloWorld (код по-долу) и не можа да накара програмата да се компилира. Следвах стъпките за инсталиране и инсталирах opam install coq:io:system . Моята инсталация opam е на местоположението по подразбиране ~/.opam . Но все...
489 изгледи
schedule 02.05.2024

Използване на `apply with` без даване на имена на параметри в Coq?
При използването на тактиката Coq apply ... with всички примери, които съм виждал, включват изрично даване на имената на променливите за инстанциране. Например, дадена е теорема за транзитивността на равенството. Theorem trans_eq : forall...
2778 изгледи
schedule 10.04.2024