coq

How do I write Ax ( P(x) and Q(x) ) in Coq?

I'm trying out Coq, but I'm not completely sure what I'm doing. Is: Theorem new_theorem : forall x, P:Prop /\ Q:Prop Equivalent to: Ax ( P(x) and Q(x) ) (where A is supposed to be the universal quantifier). Edit: I think they are. ...

How to prove (forall x, P x /\ Q x) -> (forall x, P x) [In Coq]

How does one prove (forall x, P x /\ Q x) -> (forall x, P x) in Coq? Been trying for hours and can't figure out how to break down the antecedent to something that Coq can digest. (I'm a newb, obviously :) ...

proofs about regular expressions

Does anyone know any examples of the following? Proof developments about regular expressions (possibly extended with backreferences) in proof assistants (such as Coq). Programs in dependently-typed languages (such as Agda) about regular expressions. ...

Proving f (f bool) = bool

How can I in coq, prove that a function f that accepts a bool true|false and returns a bool true|false (shown below), when applied twice to a single bool true|false would always return that same value true|false: (f:bool -> bool) For example the function f can only do 4 things, lets call the input of the function b: Always return tr...

Proving Predicate Logic using Coq - Beginner Syntax

I'm trying to prove the following in Coq: Goal (forall x:X, P(x) /\ Q(x)) -> ((forall x:X, P (x)) /\ (forall x:X, Q (x))). Can someone please help? I'm not sure whether to split, make an assumption etc. My apologies for being a complete noob ...

Help with a Coq proof for SubSequences

Hi, I have the defined inductive types: Inductive InL (A:Type) (y:A) : list A -> Prop := | InHead : forall xs:list A, InL y (cons y xs) | InTail : forall (x:A) (xs:list A), InL y xs -> InL y (cons x xs). Inductive SubSeq (A:Type) : list A -> list A -> Prop := | SubNil : forall l:list A, SubSeq nil l | SubCons1 : forall (x:A) (...

What are the practical limitations of a non-turing complete language like Coq?

As there are non-Turing complete languages out there, and given I didn't study Comp Sci at university, could someone explain something that a Turing-incomplete language (like Coq) cannot do? Or is the completeness/incompleteness of no real practical interest (i.e. does it not make much difference in practice)? EDIT - I'm looking for an...

How to write Definitions without arguments in Coq?

I have the following Inductive type defined in Coq. Inductive natlist : Type := | nil : natlist | cons : nat -> natlist -> natlist. Notation "x :: l" := (cons x l) (at level 60, right associativity). Notation "[ ]" := nil. Notation "[ x , .. , y ]" := (cons x .. (cons y nil) ..). The natlist is basically a list of natural numbers (...