Quantcast
Channel: User Agnishom Chattopadhyay - Proof Assistants Stack Exchange
Browsing index pages (44 articles)

Comment by Agnishom Chattopadhyay on Is there a Lean 4 FFI for python?

This could be an XY situation: meta.stackexchange.com/questions/66377/what-is-the-xy-proble‌​m

View Article


How do I set up a `flake.nix` for the development and building of my Coq...

I will confess that I do not really understand the nix toolchain very well.Is it possible to produce a flake.nix which can do the following?Pin the specific version of Coq, OCaml, and specific Coq...

View Article


Comment by Agnishom Chattopadhyay on How do I set up a `flake.nix` for the...

This seems quite helpful, especially for spawning a shell which has access to coq and the language server. It doesn't have something which builds the Coq proofs themselves, though

View Article

Comment by Agnishom Chattopadhyay on Could proof assistants fill in single...

This is called "proof automation". Proof Assistants do do this to some degree, with the help of hammers, for example. But this is basically a research question. As such, there is no "push-button"...

View Article

Comment by Agnishom Chattopadhyay on What are some examples of proof...

Chapter 3 of the book "QED at Large" by Ringer and coauthors seem to have some nice examples

View Article


Comment by Agnishom Chattopadhyay on Why does `#check add_mul (R := ℕ)`...

You have two judgements here: the first one is that add_mul : ∀ (a b c : ℕ), (a + b) * c = a * c + b * c and the second one is that ∀ (a b c : ℕ), (a + b) * c = a * c + b * c : Prop

View Article

Answer by Agnishom Chattopadhyay for Extracting Coq Lists to Lazy OCaml Lists?

The solution seems to be the followingExtract Inductive list => "Seq.t" [ "(fun _ -> Seq.Nil)" "(fun pat _ -> let (x, xs) = pat in Seq.Cons(x, xs))" ]"(fun fNil fCons l -> match l () with...

View Article

Comment by Agnishom Chattopadhyay on Extracting Coq Lists to Lazy OCaml Lists?

@MevenLennon-Bertrand could you explain? Extract Inductive list => "Seq.t" [ "fun _ -> Seq.Nil" "fun a l _ -> Seq.Cons a l" ]. does not work, especially for pattern matching

View Article


Rewriting/Applying unidirectional morphisms in Coq

Link to Code GistI have the following definitionDefinition subset (s1 s2 : nat -> Prop) : Prop := forall i, i ∈ s1 -> i ∈ s2.Notation "s1 ⊆ s2" := (subset s1 s2) (at level 70) : aset_scope.I want...

View Article


Answer by Agnishom Chattopadhyay for Using Coq after installation

You need an IDE to use Coq, since it should be used in an interactive manner.Popular options are:CoqIDEVisual Studio Code with VSCoq extensionEmacs with Proof General (optionally with CompanyCoq)Once...

View Article

How do I enable this kind of rewriting?

Link to Code GistGiven two extensionally equal sets, s1 ≡ s2, I want to be able to obtain a ∈ s2 from a ∈ s1using rewriting.I want to enable an extensionality-style rewriting for unary...

View Article

Comment by Agnishom Chattopadhyay on Topic for undergraduate thesis

This is a great project. From what I have seen, formalizing DFS is quite nontrivial.

View Article

Tactic to Propify a bool expression

Let's say I have bool expressions <bexp> consisting of true, false, variables, eqbandb, orb and negb. When I see an expression of the form bexp = true or bexp = false, I want to convert them to...

View Article


Comment by Agnishom Chattopadhyay on Tactic to Propify a bool expression

I think we want the ? modifier instead of !

View Article

Comment by Agnishom Chattopadhyay on To what extent is formalized mathematics...

There is also the Annals of Formalized Mathematics: afm.episciences.org

View Article


Comment by Agnishom Chattopadhyay on Creating a tactic for 'destructing' a...

Thanks for this suggestion. However, writing induction in a destruction based proof feels rather odd to me

View Article

Creating a tactic for 'destructing' a list by last element?

Sometimes, I have a context in which I have some l : list X, and I want to prove the goal by proving that (1) If l = [], the goal holds, and (2) If l = l'++ [x], the goal still holds.This usually takes...

View Article


Selecting both a hypothesis and Goal while applying a tactic

I have a hypothesis H and some function foo. I want to simplify foo in both H and the Goal. How do I achieve this with a single tactic?The tactic simpl foo in * selects everything. The tactic simpl foo...

View Article

Defining a Recursive Function decreasing on one argument with < and another...

I want to define a function which decreases in one argument using < and on another structurally. What is the least painful way to do this? Among the many options (Function, Program Fixpoint,...

View Article

Injectivity, Surjectivity and Smallness on lists of natural numbers imply...

Require Import Coq.Lists.List.I have the following properties defined on a list of natural numbers:Definition small (l : list nat) : Prop := forall n, In n l -> n < length l.Definition surj (l :...

View Article
Browsing index pages (44 articles)


Latest Images