Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
R
rtproofs
Project overview
Project overview
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Felipe Cerqueira
rtproofs
Commits
cecba062
Commit
cecba062
authored
Sep 09, 2016
by
Felipe Cerqueira
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Remove unnecessary assumption job_cost > 0
parent
bf05f1be
Changes
1
Hide whitespace changes
Inline
Sidebyside
Showing
1 changed file
with
10 additions
and
9 deletions
+10
9
implementation/uni/basic/schedule.v
implementation/uni/basic/schedule.v
+10
9
No files found.
implementation/uni/basic/schedule.v
View file @
cecba062
...
...
@@ 63,13 +63,9 @@ Module ConcreteScheduler.
Context
{
Job
:
eqType
}
.
Variable
job_cost
:
Job
>
time
.
(
*
Let
arr_seq
be
any
job
arrival
sequence
with
no
duplicates
,
..
.
*
)
(
*
Let
arr_seq
be
any
job
arrival
sequence
with
no
duplicates
.
*
)
Variable
arr_seq
:
arrival_sequence
Job
.
Hypothesis
H_arrival_sequence_is_a_set
:
arrival_sequence_is_a_set
arr_seq
.
(
*
...
where
jobs
have
positive
cost
.
*
)
Hypothesis
H_job_cost_positive
:
forall
(
j
:
JobIn
arr_seq
),
job_cost_positive
job_cost
j
.
(
*
Consider
any
JLDP
policy
that
is
transitive
and
total
.
*
)
Variable
higher_eq_priority
:
JLDP_policy
arr_seq
.
...
...
@@ 189,7 +185,6 @@ Module ConcreteScheduler.
Theorem
scheduler_completed_jobs_dont_execute
:
completed_jobs_dont_execute
job_cost
sched
.
Proof
.
rename
H_job_cost_positive
into
GT0
.
unfold
completed_jobs_dont_execute
,
service
,
service_during
.
intros
j
t
.
induction
t
;
first
by
rewrite
big_geq
.
...
...
@@ 204,9 +199,15 @@ Module ConcreteScheduler.
rewrite
EQ
{
2
}
[
job_cost
j
]
addn0
;
apply
leq_add
;
first
by
done
.
destruct
t
.
{
rewrite
big_geq
// in EQ.
specialize
(
GT0
j
);
unfold
job_cost_positive
in
*
.
by
rewrite

EQ
ltn0
in
GT0
.
rewrite
/
service_at
/
scheduled_at
.
destruct
(
sched
0
==
Some
j
)
eqn
:
SCHED
;
last
by
done
.
move:
SCHED
=>
/
eqP
SCHED
.
rewrite
scheduler_picks_first_job
in
SCHED
.
set
jobs
:=
sorted_pending_jobs
_
_
_
_
_
in
SCHED
.
have
IN
:
j
\
in
jobs
.
by
destruct
jobs
;
last
by
move
:
SCHED
=>
/=
;
case
=>
SAME
;
subst
;
rewrite
in_cons
eq_refl
.
rewrite
mem_sort
mem_filter
in
IN
;
move
:
IN
=>
/
andP
[
/
andP
[
_
NOTCOMP
]
_
].
by
rewrite
/
completed_by

EQ
eq_refl
in
NOTCOMP
.
}
{
unfold
service_at
,
scheduled_at
.
...
...
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