Skip to content
/ coq Public
forked from coq/coq

Coq is a formal proof management system. It provides a formal language to write mathematical definitions, executable algorithms and theorems together with an environment for semi-interactive development of machine-checked proofs.

License

Notifications You must be signed in to change notification settings

pirbo/coq

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

               	         THE IRRELEVANT COQ SYSTEM
            	         =========================

Take Coq.

Add in its syntax (up to kernel/extensions.ml) :
 - Irr : Type(0)
 - iPrf : Irr -> Prop
 - iJMeq : forall {A B: Type}, A -> B -> Irr
 - iSubst : forall {A: Type} (a: A) (b: A)
    (eq: iPrf (iJMeq a b)) (P : A -> Type) (p : P a), P b

Make it typecheck them (kernel/extension_behavior.ml +
kernel/typeops.ml).

Add in its conversion test (kernel/reduction.ml:ccnv) :
G |- p == q : forall (x_1: T_1) ... (x_n: T_n), iPrf A

Add in the reduction machine (kernel/closure.ml) :
      G |- a == b : A
____________________________
G |- isubst a b eq P p ==> p


Of course, Coq reduction machine and conversion test are not typed so
you have cheated by
 - carrying and updating a typing environment that destructs all the performance
 - declaring references "nasty_infer" & "nasty_conv" in kernel/closure.ml
that you set to the latter-defined functions afterward.

Of course, it is completely incomplete and will do "pattern matching
failure" if you try to use cbv reduction machines.

Of course, it is full of bugs such as the one that makes NMake_gen.v
kill your computer if you keep "reflexivity" instead of "exact
eq_refl" at some point. I personnaly stop the massacre after 30Go of
swap!

But at least, you will obtain a playground thus this one ... Sandbox
is open at theories/Irr/Irr.v.

About

Coq is a formal proof management system. It provides a formal language to write mathematical definitions, executable algorithms and theorems together with an environment for semi-interactive development of machine-checked proofs.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • OCaml 46.9%
  • Coq 41.4%
  • TeX 11.3%
  • C 0.4%
  • Shell 0.0%
  • CSS 0.0%