Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
I
inox
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
LARA
inox
Commits
65e120d6
Commit
65e120d6
authored
13 years ago
by
Ali Sinan Köksal
Browse files
Options
Downloads
Patches
Plain Diff
modifications to examples and evaluation scripts
parent
2f1fb9eb
No related branches found
No related tags found
No related merge requests found
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
cp-demo/enumerating/SortedList.scala
+2
-1
2 additions, 1 deletion
cp-demo/enumerating/SortedList.scala
demo/ListOperations.scala
+15
-2
15 additions, 2 deletions
demo/ListOperations.scala
eval/cp/scripts/run-cp-evaluation
+13
-34
13 additions, 34 deletions
eval/cp/scripts/run-cp-evaluation
with
30 additions
and
37 deletions
cp-demo/enumerating/SortedList.scala
+
2
−
1
View file @
65e120d6
...
@@ -44,7 +44,8 @@ object SortedList {
...
@@ -44,7 +44,8 @@ object SortedList {
def
main
(
args
:
Array
[
String
])
:
Unit
=
{
def
main
(
args
:
Array
[
String
])
:
Unit
=
{
val
len
=
if
(
args
.
isEmpty
)
3
else
args
(
0
).
toInt
val
len
=
if
(
args
.
isEmpty
)
3
else
args
(
0
).
toInt
f2
(
len
)
f1
(
len
)
// f2(len)
// f3(len)
// f3(len)
// f4()
// f4()
}
}
...
...
This diff is collapsed.
Click to expand it.
demo/ListOperations.scala
+
15
−
2
View file @
65e120d6
...
@@ -73,13 +73,26 @@ object ListOperations {
...
@@ -73,13 +73,26 @@ object ListOperations {
def
append
(
l1
:
List
,
l2
:
List
)
:
List
=
(
l1
match
{
def
append
(
l1
:
List
,
l2
:
List
)
:
List
=
(
l1
match
{
case
Nil
()
=>
l2
case
Nil
()
=>
l2
case
Cons
(
x
,
xs
)
=>
Cons
(
x
,
append
(
xs
,
l2
))
case
Cons
(
x
,
xs
)
=>
Cons
(
x
,
append
(
xs
,
l2
))
})
ensuring
(
content
(
_
)
==
content
(
l1
)
++
content
(
l2
))
})
//
ensuring(content(_) == content(l1) ++ content(l2))
def
map
(
f
:
Int
=>
Int
,
l
:
List
)
:
List
=
l
match
{
def
map
(
f
:
Int
=>
Int
,
l
:
List
)
:
List
=
l
match
{
case
Nil
()
=>
Nil
()
case
Nil
()
=>
Nil
()
case
Cons
(
x
,
xs
)
=>
Cons
(
f
(
x
),
map
(
f
,
xs
))
case
Cons
(
x
,
xs
)
=>
Cons
(
f
(
x
),
map
(
f
,
xs
))
}
}
def
definedForAll
(
m
:
Map
[
Int
,
Int
],
l
:
List
)
:
Boolean
=
l
match
{
case
Nil
()
=>
true
case
Cons
(
x
,
xs
)
=>
m
.
isDefinedAt
(
x
)
&&
definedForAll
(
m
,
xs
)
}
def
map2
(
m
:
Map
[
Int
,
Int
],
l
:
List
)
:
List
=
{
//require(definedForAll(m, l))
l
match
{
case
Nil
()
=>
Nil
()
case
Cons
(
x
,
xs
)
=>
Cons
(
m
(
x
),
map2
(
m
,
xs
))
}
}
@induct
@induct
def
appendMapCommute
(
l1
:
List
,
l2
:
List
,
f
:
Int
=>
Int
)
:
Boolean
=
{
def
appendMapCommute
(
l1
:
List
,
l2
:
List
,
f
:
Int
=>
Int
)
:
Boolean
=
{
map
(
f
,
append
(
l1
,
l2
))
==
append
(
map
(
f
,
l1
),
map
(
f
,
l2
))
map
(
f
,
append
(
l1
,
l2
))
==
append
(
map
(
f
,
l1
),
map
(
f
,
l2
))
...
@@ -88,7 +101,7 @@ object ListOperations {
...
@@ -88,7 +101,7 @@ object ListOperations {
@induct
@induct
def
nilAppend
(
l
:
List
)
:
Boolean
=
(
append
(
l
,
Nil
())
==
l
)
holds
def
nilAppend
(
l
:
List
)
:
Boolean
=
(
append
(
l
,
Nil
())
==
l
)
holds
@induct
//
@induct
def
appendAssoc
(
xs
:
List
,
ys
:
List
,
zs
:
List
)
:
Boolean
=
def
appendAssoc
(
xs
:
List
,
ys
:
List
,
zs
:
List
)
:
Boolean
=
(
append
(
append
(
xs
,
ys
),
zs
)
==
append
(
xs
,
append
(
ys
,
zs
)))
holds
(
append
(
append
(
xs
,
ys
),
zs
)
==
append
(
xs
,
append
(
ys
,
zs
)))
holds
...
...
This diff is collapsed.
Click to expand it.
eval/cp/scripts/run-cp-evaluation
+
13
−
34
View file @
65e120d6
...
@@ -4,57 +4,36 @@ cd ../../..
...
@@ -4,57 +4,36 @@ cd ../../..
ts
=
`
date
+%F-%R
`
ts
=
`
date
+%F-%R
`
demoFolder
=
"cp-demo"
demoFolder
=
"cp-demo"
cc
=
"./cp-compile"
rc
=
"./cp-run"
#classes=( "RedBlackTree" "SortedList" )
#classes=( "RedBlackTree" "SortedList" )
if
[
"$#"
-lt
"
3
"
]
if
[
"$#"
-lt
"
4
"
]
then
then
echo
"Please provide a class name and bounds for problem size"
echo
"Please provide a
file name, main
class name and bounds for problem size"
exit
1
exit
1
fi
fi
class
=
${
1
}
filename
=
${
1
}
base
=
${
2
}
mainclass
=
${
2
}
limit
=
${
3
}
base
=
${
3
}
limit
=
${
4
}
evalFolder
=
"eval/cp/data/
${
ts
}
-
${
class
}
"
evalFolder
=
"eval/cp/data/
${
ts
}
-
${
main
class
}
"
mkdir
-p
${
evalFolder
}
mkdir
-p
${
evalFolder
}
evalFileBase
=
${
evalFolder
}
/
${
class
}
-
${
ts
}
-CAV
evalFileBase
=
${
evalFolder
}
/
${
main
class
}
-
${
ts
}
./cp CAV
${
demoFolder
}
/
${
class
}
.scala
||
(
echo
"Could not compile..."
&&
exit
1
)
${
cc
}
axioms scalaEval
${
filename
}
||
(
echo
"Could not compile..."
&&
exit
1
)
for
((
i
=
${
base
}
;
i<
=
${
limit
}
;
i++
))
for
((
i
=
${
base
}
;
i<
=
${
limit
}
;
i++
))
do
do
currentFile
=
${
evalFileBase
}
-
${
i
}
currentFile
=
${
evalFileBase
}
-
${
i
}
./cp-runner
${
class
}
$i
|
tee
-a
${
currentFile
}
${
rc
}
${
main
class
}
$i
|
tee
-a
${
currentFile
}
cd eval
/cp/scripts
cd eval
/cp/scripts
./generate-graph ../../../
${
currentFile
}
./generate-graph ../../../
${
currentFile
}
cd
../../..
cd
../../..
done
done
evalFileBase
=
${
evalFolder
}
/
${
class
}
-
${
ts
}
-CAV-axioms
mv eval
/cp/graphs/
${
mainclass
}
-
${
ts
}
-
*
${
evalFolder
}
./cp CAV axioms
${
demoFolder
}
/
${
class
}
.scala
||
(
echo
"Could not compile..."
&&
exit
1
)
for
((
i
=
${
base
}
;
i<
=
${
limit
}
;
i++
))
do
currentFile
=
${
evalFileBase
}
-
${
i
}
./cp-runner
${
class
}
$i
|
tee
-a
${
currentFile
}
cd eval
/cp/scripts
./generate-graph ../../../
${
currentFile
}
cd
../../..
done
evalFileBase
=
${
evalFolder
}
/
${
class
}
-
${
ts
}
-CAV-axioms-scalaEval
./cp CAV axioms scalaEval
${
demoFolder
}
/
${
class
}
.scala
||
(
echo
"Could not compile..."
&&
exit
1
)
for
((
i
=
${
base
}
;
i<
=
${
limit
}
;
i++
))
do
currentFile
=
${
evalFileBase
}
-
${
i
}
./cp-runner
${
class
}
$i
|
tee
-a
${
currentFile
}
cd eval
/cp/scripts
./generate-graph ../../../
${
currentFile
}
cd
../../..
done
mv eval
/cp/graphs/
${
class
}
-
${
ts
}
-
*
${
evalFolder
}
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment