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
f1dec731
Commit
f1dec731
authored
Oct 10, 2011
by
Adam Chlipala
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Work around coqdoc bug
parent
402475fd
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
2 additions
and
2 deletions
+2
-2
Subset.v
src/Subset.v
+2
-2
No files found.
src/Subset.v
View file @
f1dec731
...
@@ -930,7 +930,7 @@ The results of simplifying calls to [typeCheck'] look deceptively similar to the
...
@@ -930,7 +930,7 @@ The results of simplifying calls to [typeCheck'] look deceptively similar to the
(
**
All
of
the
notations
defined
in
this
chapter
,
plus
some
extras
,
are
available
for
import
from
the
module
[
MoreSpecif
]
of
the
book
source
.
(
**
All
of
the
notations
defined
in
this
chapter
,
plus
some
extras
,
are
available
for
import
from
the
module
[
MoreSpecif
]
of
the
book
source
.
%
\
begin
{
enumerate
}%
#
<
ol
>
#
%
\
begin
{
enumerate
}%
#
<
ol
>
#
%
\
item
%
#
<
li
>
#
Write
a
function
of
type
[
forall
n
m
:
nat
,
{
n
<=
m
}
+
{
n
>
m
}
]
.
That
is
,
this
function
decides
whether
one
natural
is
less
than
another
,
and
its
dependent
type
guarantees
that
its
results
are
accurate
.
#
</
li
>
#
%
\
item
%
#
<
li
>
#
Write
a
function
of
type
[
forall
n
m
:
nat
,
{
][
n
<=
m
}
+
{
][
n
>
m
}
]
.
That
is
,
this
function
decides
whether
one
natural
is
less
than
another
,
and
its
dependent
type
guarantees
that
its
results
are
accurate
.
#
</
li
>
#
%
\
item
%
#
<
li
>
#
%
\
begin
{
enumerate
}%
#
<
ol
>
#
%
\
item
%
#
<
li
>
#
%
\
begin
{
enumerate
}%
#
<
ol
>
#
%
\
item
%
#
<
li
>
#
Define
[
var
]
,
a
type
of
propositional
variables
,
as
a
synonym
for
[
nat
]
.
#
</
li
>
#
%
\
item
%
#
<
li
>
#
Define
[
var
]
,
a
type
of
propositional
variables
,
as
a
synonym
for
[
nat
]
.
#
</
li
>
#
...
@@ -941,7 +941,7 @@ The results of simplifying calls to [typeCheck'] look deceptively similar to the
...
@@ -941,7 +941,7 @@ The results of simplifying calls to [typeCheck'] look deceptively similar to the
%
\
item
%
#
<
li
>
#
Define
a
function
[
negate
]
that
returns
a
simplified
version
of
the
negation
of
a
[
prop
]
.
That
is
,
the
function
should
have
type
[
forall
p
:
prop
,
{
p
'
:
prop
|
forall
truth
,
propDenote
truth
p
<->
~
propDenote
truth
p
'
}
]
.
To
simplify
a
variable
,
just
negate
it
.
Simplify
a
negation
by
returning
its
argument
.
Simplify
conjunctions
and
disjunctions
using
De
Morgan
'
s
laws
,
negating
the
arguments
recursively
and
switching
the
kind
of
connective
.
Your
[
decide
]
function
may
be
useful
in
some
of
the
proof
obligations
,
even
if
you
do
not
use
it
in
the
computational
part
of
[
negate
]
'
s
definition
.
Lemmas
like
[
decide
]
allow
us
to
compensate
for
the
lack
of
a
general
Law
of
the
Excluded
Middle
in
CIC
.
#
</
li
>
#
%
\
item
%
#
<
li
>
#
Define
a
function
[
negate
]
that
returns
a
simplified
version
of
the
negation
of
a
[
prop
]
.
That
is
,
the
function
should
have
type
[
forall
p
:
prop
,
{
p
'
:
prop
|
forall
truth
,
propDenote
truth
p
<->
~
propDenote
truth
p
'
}
]
.
To
simplify
a
variable
,
just
negate
it
.
Simplify
a
negation
by
returning
its
argument
.
Simplify
conjunctions
and
disjunctions
using
De
Morgan
'
s
laws
,
negating
the
arguments
recursively
and
switching
the
kind
of
connective
.
Your
[
decide
]
function
may
be
useful
in
some
of
the
proof
obligations
,
even
if
you
do
not
use
it
in
the
computational
part
of
[
negate
]
'
s
definition
.
Lemmas
like
[
decide
]
allow
us
to
compensate
for
the
lack
of
a
general
Law
of
the
Excluded
Middle
in
CIC
.
#
</
li
>
#
#
</
ol
>
#
%
\
end
{
enumerate
}%
#
</
li
>
#
#
</
ol
>
#
%
\
end
{
enumerate
}%
#
</
li
>
#
%
\
item
%
#
<
li
>
#
Implement
the
DPLL
satisfiability
decision
procedure
for
boolean
formulas
in
conjunctive
normal
form
,
with
a
dependent
type
that
guarantees
its
correctness
.
An
example
of
a
reasonable
type
for
this
function
would
be
[
forall
f
:
formula
,
{
truth
:
tvals
|
formulaTrue
truth
f
}
+
{
forall
truth
,
~
formulaTrue
truth
f
}
]
.
Implement
at
least
%
``
%
#
"#the basic backtracking algorithm#"
#
%
''
%
as
defined
here
:
%
\
item
%
#
<
li
>
#
Implement
the
DPLL
satisfiability
decision
procedure
for
boolean
formulas
in
conjunctive
normal
form
,
with
a
dependent
type
that
guarantees
its
correctness
.
An
example
of
a
reasonable
type
for
this
function
would
be
[
forall
f
:
formula
,
{
truth
:
tvals
|
formulaTrue
truth
f
}
+
{
][
forall
truth
,
~
formulaTrue
truth
f
}
]
.
Implement
at
least
%
``
%
#
"#the basic backtracking algorithm#"
#
%
''
%
as
defined
here
:
%
\
begin
{
center
}
\
url
{
http
:
//en.wikipedia.org/wiki/DPLL_algorithm}\end{center}%
%
\
begin
{
center
}
\
url
{
http
:
//en.wikipedia.org/wiki/DPLL_algorithm}\end{center}%
#
<
blockquote
><
a
href
=
"http://en.wikipedia.org/wiki/DPLL_algorithm"
>
http
:
//en.wikipedia.org/wiki/DPLL_algorithm</a></blockquote>#
#
<
blockquote
><
a
href
=
"http://en.wikipedia.org/wiki/DPLL_algorithm"
>
http
:
//en.wikipedia.org/wiki/DPLL_algorithm</a></blockquote>#
It
might
also
be
instructive
to
implement
the
unit
propagation
and
pure
literal
elimination
optimizations
described
there
or
some
other
optimizations
that
have
been
used
in
modern
SAT
solvers
.
#
</
li
>
#
It
might
also
be
instructive
to
implement
the
unit
propagation
and
pure
literal
elimination
optimizations
described
there
or
some
other
optimizations
that
have
been
used
in
modern
SAT
solvers
.
#
</
li
>
#
...
...
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