Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
C
cpdt
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
research
cpdt
Commits
fc37faef
Commit
fc37faef
authored
Nov 08, 2011
by
Adam Chlipala
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Pass over old Large material; index fixes
parent
cb9e8af3
Changes
3
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
53 additions
and
72 deletions
+53
-72
Equality.v
src/Equality.v
+2
-2
Large.v
src/Large.v
+50
-69
MoreDep.v
src/MoreDep.v
+1
-1
No files found.
src/Equality.v
View file @
fc37faef
...
...
@@ -395,7 +395,7 @@ UIP_refl
:
forall
(
U
:
Type
)
(
x
:
U
)
(
p
:
x
=
x
)
,
p
=
refl_equal
x
]]
The
theorem
%
\
index
{
Gallina
terms
!
UI
F
\
_
refl
}%
[
UIP_refl
]
comes
from
the
[
Eqdep
]
module
of
the
standard
library
.
Do
the
Coq
authors
know
of
some
clever
trick
for
building
such
proofs
that
we
have
not
seen
yet
?
If
they
do
,
they
did
not
use
it
for
this
proof
.
Rather
,
the
proof
is
based
on
an
%
\
textit
{%
#
<
i
>
#
axiom
#
</
i
>
#
%}%.
*
)
The
theorem
%
\
index
{
Gallina
terms
!
UI
P
\
_
refl
}%
[
UIP_refl
]
comes
from
the
[
Eqdep
]
module
of
the
standard
library
.
Do
the
Coq
authors
know
of
some
clever
trick
for
building
such
proofs
that
we
have
not
seen
yet
?
If
they
do
,
they
did
not
use
it
for
this
proof
.
Rather
,
the
proof
is
based
on
an
%
\
textit
{%
#
<
i
>
#
axiom
#
</
i
>
#
%}%.
*
)
Print
eq_rect_eq
.
(
**
%
\
vspace
{-
.15
in
}%
[[
...
...
@@ -416,7 +416,7 @@ fun U : Type => Eq_rect_eq.eq_rect_eq U
end
]]
Perhaps
surprisingly
,
we
cannot
prove
[
eq_rect_eq
]
from
within
Coq
.
This
proposition
is
introduced
as
an
%
\
index
{
axiom
}%
axiom
;
that
is
,
a
proposition
asserted
as
true
without
proof
.
We
cannot
assert
just
any
statement
without
proof
.
Adding
[
False
]
as
an
axiom
would
allow
us
to
prove
any
proposition
,
for
instance
,
defeating
the
point
of
using
a
proof
assistant
.
In
general
,
we
need
to
be
sure
that
we
never
assert
%
\
textit
{%
#
<
i
>
#
inconsistent
#
</
i
>
#
%}%
sets
of
axioms
.
A
set
of
axioms
is
inconsistent
if
its
conjunction
implies
[
False
]
.
For
the
case
of
[
eq_rect_eq
]
,
consistency
has
been
verified
outside
of
Coq
via
%
``
%
#
"#informal#"
#
%
''
%
metatheory
%~
\
cite
{
AxiomK
}%,
in
a
study
that
also
established
unprovability
of
the
axiom
in
CIC
.
Perhaps
surprisingly
,
we
cannot
prove
[
eq_rect_eq
]
from
within
Coq
.
This
proposition
is
introduced
as
an
%
\
index
{
axiom
s
}%
axiom
;
that
is
,
a
proposition
asserted
as
true
without
proof
.
We
cannot
assert
just
any
statement
without
proof
.
Adding
[
False
]
as
an
axiom
would
allow
us
to
prove
any
proposition
,
for
instance
,
defeating
the
point
of
using
a
proof
assistant
.
In
general
,
we
need
to
be
sure
that
we
never
assert
%
\
textit
{%
#
<
i
>
#
inconsistent
#
</
i
>
#
%}%
sets
of
axioms
.
A
set
of
axioms
is
inconsistent
if
its
conjunction
implies
[
False
]
.
For
the
case
of
[
eq_rect_eq
]
,
consistency
has
been
verified
outside
of
Coq
via
%
``
%
#
"#informal#"
#
%
''
%
metatheory
%~
\
cite
{
AxiomK
}%,
in
a
study
that
also
established
unprovability
of
the
axiom
in
CIC
.
This
axiom
is
equivalent
to
another
that
is
more
commonly
known
and
mentioned
in
type
theory
circles
.
*
)
...
...
src/Large.v
View file @
fc37faef
This diff is collapsed.
Click to expand it.
src/MoreDep.v
View file @
fc37faef
...
...
@@ -642,7 +642,7 @@ Section insert.
(
**
The
variable
[
z
]
stands
for
an
arbitrary
key
.
We
will
reason
about
[
z
]
'
s
presence
in
particular
trees
.
As
usual
,
outside
the
section
the
theorems
we
prove
will
quantify
over
all
possible
keys
,
giving
us
the
facts
we
wanted
.
We
start
by
proving
the
correctness
of
the
balance
operations
.
It
is
useful
to
define
a
custom
tactic
[
present_balance
]
that
encapsulates
the
reasoning
common
to
the
two
proofs
.
We
use
the
keyword
%
\
index
{
Verncular
commands
!
Ltac
}%
[
Ltac
]
to
assign
a
name
to
a
proof
script
.
This
particular
script
just
iterates
between
[
crush
]
and
identification
of
a
tree
that
is
being
pattern
-
matched
on
and
should
be
destructed
.
*
)
We
start
by
proving
the
correctness
of
the
balance
operations
.
It
is
useful
to
define
a
custom
tactic
[
present_balance
]
that
encapsulates
the
reasoning
common
to
the
two
proofs
.
We
use
the
keyword
%
\
index
{
Vern
a
cular
commands
!
Ltac
}%
[
Ltac
]
to
assign
a
name
to
a
proof
script
.
This
particular
script
just
iterates
between
[
crush
]
and
identification
of
a
tree
that
is
being
pattern
-
matched
on
and
should
be
destructed
.
*
)
Ltac
present_balance
:=
crush
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment