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
9d3f4210
Commit
9d3f4210
authored
Feb 10, 2013
by
Adam Chlipala
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Pass through Chapter 13
parent
91258497
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
2 additions
and
2 deletions
+2
-2
LogicProg.v
src/LogicProg.v
+2
-2
No files found.
src/LogicProg.v
View file @
9d3f4210
...
...
@@ -126,7 +126,7 @@ Error: Impossible to unify "plusR 0 ?27 ?27" with "plusR 1 3 4".
apply
PlusS
.
apply
PlusO
.
(
**
At
this
point
the
proof
is
completed
.
It
is
no
doubt
clear
that
a
simple
procedure
could
find
all
proofs
of
this
kind
for
us
.
We
are
just
exploring
all
possible
proof
trees
,
built
from
the
two
candidate
steps
[
apply
PlusO
]
and
[
apply
PlusS
]
.
The
built
-
in
tactic
%
\
index
{
tactics
!
auto
}%
[
auto
]
does
exactly
that
,
since
above
we
used
%
\
index
{
Vernacular
commands
!
Hint
Constructors
}%
[
Hint
Constructors
]
to
register
the
two
candidate
proof
steps
as
hints
.
*
)
(
**
At
this
point
the
proof
is
completed
.
It
is
no
doubt
clear
that
a
simple
procedure
could
find
all
proofs
of
this
kind
for
us
.
We
are
just
exploring
all
possible
proof
trees
,
built
from
the
two
candidate
steps
[
apply
PlusO
]
and
[
apply
PlusS
]
.
The
built
-
in
tactic
%
\
index
{
tactics
!
auto
}%
[
auto
]
follows
exactly
this
strategy
,
since
above
we
used
%
\
index
{
Vernacular
commands
!
Hint
Constructors
}%
[
Hint
Constructors
]
to
register
the
two
candidate
proof
steps
as
hints
.
*
)
Restart
.
auto
.
...
...
@@ -813,7 +813,7 @@ Print linear.
(
**
Let
us
stop
at
this
point
and
take
stock
of
the
possibilities
for
[
auto
]
and
[
eauto
]
hints
.
Hints
are
contained
within
_
hint
databases_
,
which
we
have
seen
extended
in
many
examples
so
far
.
When
no
hint
database
is
specified
,
a
default
database
is
used
.
Hints
in
the
default
database
are
always
used
by
[
auto
]
or
[
eauto
]
.
The
chance
to
extend
hint
databases
imperatively
is
important
,
because
,
in
Ltac
programming
,
we
cannot
create
"global variables"
whose
values
can
be
extended
seamlessly
by
different
modules
in
different
source
files
.
We
have
seen
the
advantages
of
hints
so
far
,
where
[
crush
]
can
be
defined
once
and
for
all
,
while
still
automatically
applying
the
hints
we
add
throughout
developments
.
In
fact
,
[
crush
]
is
defined
in
terms
of
[
auto
]
,
which
explains
how
we
achieve
this
extensibility
.
Other
user
-
defined
tactics
can
take
similar
advantage
of
[
auto
]
and
[
eauto
]
.
The
basic
hints
for
[
auto
]
and
[
eauto
]
are
:
%
\
index
{
Vernacular
commands
!
Hint
Immediate
}%
[
Hint
Immediate
lemma
]
,
asking
to
try
solving
a
goal
immediately
by
applying
a
lemma
and
discharging
any
hypotheses
with
a
single
proof
step
each
;
%
\
index
{
Vernacular
commands
!
Hint
Resolve
}%
[
Resolve
lemma
]
,
which
does
the
same
but
may
add
new
premises
that
are
themselves
to
be
subjects
of
nested
proof
search
;
%
\
index
{
Vernacular
commands
!
Hint
Constructors
}%
[
Constructors
type
]
,
which
acts
like
[
Resolve
]
applied
to
every
constructor
of
an
inductive
type
;
and
%
\
index
{
Vernacular
commands
!
Hint
Unfold
}%
[
Unfold
ident
]
,
which
tries
unfolding
[
ident
]
when
it
appears
at
the
head
of
a
proof
goal
.
Each
of
these
[
Hint
]
commands
may
be
used
with
a
suffix
,
as
in
[
Hint
Resolve
lemma
:
my_db
]
.
This
adds
the
hint
only
to
the
specified
database
,
so
that
it
would
only
be
used
by
,
for
instance
,
[
auto
with
my_db
]
.
An
additional
argument
to
[
auto
]
specifies
the
maximum
depth
of
proof
trees
to
search
in
depth
-
first
order
,
as
in
[
auto
8
]
or
[
auto
8
with
my_db
]
.
The
default
depth
is
5.
The
basic
hints
for
[
auto
]
and
[
eauto
]
are
:
%
\
index
{
Vernacular
commands
!
Hint
Immediate
}%
[
Hint
Immediate
lemma
]
,
asking
to
try
solving
a
goal
immediately
by
applying
a
lemma
and
discharging
any
hypotheses
with
a
single
proof
step
each
;
%
\
index
{
Vernacular
commands
!
Hint
Resolve
}%
[
Resolve
lemma
]
,
which
does
the
same
but
may
add
new
premises
that
are
themselves
to
be
subjects
of
nested
proof
search
;
%
\
index
{
Vernacular
commands
!
Hint
Constructors
}%
[
Constructors
type
]
,
which
acts
like
[
Resolve
]
applied
to
every
constructor
of
an
inductive
type
;
and
%
\
index
{
Vernacular
commands
!
Hint
Unfold
}%
[
Unfold
ident
]
,
which
tries
unfolding
[
ident
]
when
it
appears
at
the
head
of
a
proof
goal
.
Each
of
these
[
Hint
]
commands
may
be
used
with
a
suffix
,
as
in
[
Hint
Resolve
lemma
:
my_db
]
,
to
add
the
hint
only
to
the
specified
database
,
so
that
it
would
only
be
used
by
,
for
instance
,
[
auto
with
my_db
]
.
An
additional
argument
to
[
auto
]
specifies
the
maximum
depth
of
proof
trees
to
search
in
depth
-
first
order
,
as
in
[
auto
8
]
or
[
auto
8
with
my_db
]
.
The
default
depth
is
5.
All
of
these
[
Hint
]
commands
can
be
expressed
with
a
more
primitive
hint
kind
,
[
Extern
]
.
A
few
more
examples
of
[
Hint
Extern
]
should
illustrate
more
of
the
possibilities
.
*
)
...
...
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