Ferruccio Guidi [Fri, 13 Jun 2008 11:47:41 +0000 (11:47 +0000)]
Initial version of the Helena Checker
- For now just parses an automath book (automath grammar by F. Wiedijg)
the grundlagen is provided as (the only existing) example
- In the future will convert an automath book to a lambda-delta environment
several lambda-delta extensions will be supported
Enrico Tassi [Thu, 12 Jun 2008 15:52:34 +0000 (15:52 +0000)]
Testing some performance tricks by caching the list of the first n primes and
showing that they are good either with nth_prime (sloooooooooowww) or with
sieve (slooooow and not proved correct yet). With sieve we are currently able
to verify the list of the first 103 primes in a sort of reasonable time.
The 103rd prime is only 593 :-(
Most of the time, URIs can now be replaced with identifiers in "interpretation".
Warning: identifiers are mapped to URIs according to the last declared
alias.
Eratosthene's sieve factorized out of nat/bertrand.ma. Nothing added not
removed.
In theory, sieve.ma ishould not depend on nth_prime.ma and factorization.ma.
In practice, a proof requires factorization that, in turn, depends on
nth_prime.ma. To be investigated.
Enrico Tassi [Fri, 30 May 2008 19:28:41 +0000 (19:28 +0000)]
CProp hierarchy is there!
Implications:
- more universes, XML file format changed, please rebuild your stuff
- CProp conclusions are eliminated with _rect and not _rec
- CProp and Types are interleaved, but still comparable, this may (or not)
what you expect: Type_i < CProp_i < Type_i+1 < CProp_i+1
Caveats:
- are_convertible sort CProp may turn to be wrong, since Type_i is convertible (<=) to CProp_i+0.5 and there is no way to set test_equality_only, an
additional parameter may be useful
- CProp goals will be tackled by auto even if they could be cumulated into
Type that is not (by default) take into consideration
Enrico Tassi [Fri, 30 May 2008 09:17:02 +0000 (09:17 +0000)]
thanks to the fact that we convert well typed term and that
we convert only types, by inversion we know that types of lambdas
source are convertible if in head position
Enrico Tassi [Thu, 29 May 2008 16:27:26 +0000 (16:27 +0000)]
CProp, since it was defined in CoRN as a Type, is predicative.
However, it is not Type0, but a moving Type as usual, for example
inductive and (A,B:CProp) : CProp := ...
inductive exists (A:Type) (P:A->CProp) : CProp :=
| ext : \forall x:A. \forall p : P x. exists A P.
does not pass since the sort of x is Type not included in CProp. Putting
exists in Type does not work either, if you want to make a conjuction
involving an existential.
Enrico Tassi [Thu, 29 May 2008 09:43:47 +0000 (09:43 +0000)]
the type of the match was obtained reducing the outtype
applied to right + matched with whd ~delta:true that
is not what you want. replaced with head_beta_reduce.
Enrico Tassi [Mon, 26 May 2008 14:01:04 +0000 (14:01 +0000)]
new, more rigid syntax, for auto_params affecting the declarative language.
many multi-word constructs (like 'we proved') are now a single token.
all declarative tactics now use auto_params.
syntax of declarative tactics changed.
many camlp5 refactoring to avoid many rule conflics.