Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
P
PROSA - Formally Proven Schedulability Analysis
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
RT-PROOFS
PROSA - Formally Proven Schedulability Analysis
Commits
bd6d237f
Commit
bd6d237f
authored
5 years ago
by
Sergey Bozhko
Browse files
Options
Downloads
Patches
Plain Diff
Shorten a needlessly-long proof
parent
d52138bf
No related branches found
Branches containing commit
No related tags found
Tags containing commit
1 merge request
!19
Shorten a needlessly-long proof
Changes
3
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
model/schedule/uni/limited/busy_interval.v
+153
-180
153 additions, 180 deletions
model/schedule/uni/limited/busy_interval.v
model/schedule/uni/service.v
+19
-2
19 additions, 2 deletions
model/schedule/uni/service.v
util/sum.v
+20
-5
20 additions, 5 deletions
util/sum.v
with
192 additions
and
187 deletions
model/schedule/uni/limited/busy_interval.v
+
153
−
180
View file @
bd6d237f
This diff is collapsed.
Click to expand it.
model/schedule/uni/service.v
+
19
−
2
View file @
bd6d237f
...
...
@@ -310,9 +310,9 @@ Module Service.
}
Qed
.
(*
Last, w
e prove that overall service of jobs at each time instant is at most 1. *)
(*
W
e prove that
the
overall service of jobs at each time instant is at most 1. *)
Lemma
service_of_jobs_le_1
:
forall
t1
t2
t
P
,
forall
(
t1
t2
t
:
time
)
(
P
:
Job
->
bool
)
,
\
sum_
(
j
<-
arrivals_between
t1
t2
|
P
j
)
service_at
sched
j
t
<=
1
.
Proof
.
intros
t1
t2
t
P
.
...
...
@@ -348,6 +348,23 @@ Module Service.
by
rewrite
/
service_at
/
scheduled_at
SCHED
.
}
Qed
.
(* We prove that the overall service of jobs within
some time interval [t, t + Δ) is at most Δ. *)
Lemma
total_service_of_jobs_le_delta
:
forall
(
t
Δ
:
time
)
(
P
:
Job
->
bool
),
\
sum_
(
j
<-
arrivals_between
t
(
t
+
Δ
)
|
P
j
)
service_during
sched
j
t
(
t
+
Δ
)
<=
Δ
.
Proof
.
intros
.
have
EQ
:
\
sum_
(
t
<=
x
<
t
+
Δ
)
1
=
Δ
.
{
by
rewrite
big_const_nat
iter_addn
mul1n
addn0
-
{
2
}[
t
]
addn0
subnDl
subn0
.
}
rewrite
-
{
3
}
EQ
;
clear
EQ
.
rewrite
exchange_big
//=.
rewrite
leq_sum
//.
move
=>
t'
_
.
by
apply
service_of_jobs_le_1
.
Qed
.
(* In this section, we introduce a connection between the cumulative
service, cumulative workload, and completion of jobs. *)
...
...
This diff is collapsed.
Click to expand it.
util/sum.v
+
20
−
5
View file @
bd6d237f
...
...
@@ -246,14 +246,14 @@ End ExtraLemmas.
Section
SumArithmetic
.
Lemma
sum_seq_diff
:
forall
(
T
:
eqType
)
(
r
:
seq
T
)
(
F
G
:
T
->
nat
),
(
forall
i
:
T
,
i
\
in
r
->
G
i
<=
F
i
)
->
\
sum_
(
i
<-
r
)
(
F
i
-
G
i
)
=
\
sum_
(
i
<-
r
)
F
i
-
\
sum_
(
i
<-
r
)
G
i
.
forall
(
T
:
eqType
)
(
r
s
:
seq
T
)
(
F
G
:
T
->
nat
),
(
forall
i
:
T
,
i
\
in
r
s
->
G
i
<=
F
i
)
->
\
sum_
(
i
<-
r
s
)
(
F
i
-
G
i
)
=
\
sum_
(
i
<-
r
s
)
F
i
-
\
sum_
(
i
<-
r
s
)
G
i
.
Proof
.
intros
.
induction
r
;
first
by
rewrite
!
big_nil
subn0
.
induction
r
s
;
first
by
rewrite
!
big_nil
subn0
.
rewrite
!
big_cons
subh2
.
-
apply
/
eqP
;
rewrite
eqn_add2l
;
apply
/
eqP
;
apply
IHr
.
-
apply
/
eqP
;
rewrite
eqn_add2l
;
apply
/
eqP
;
apply
IHr
s
.
by
intros
;
apply
H
;
rewrite
in_cons
;
apply
/
orP
;
right
.
-
by
apply
H
;
rewrite
in_cons
;
apply
/
orP
;
left
.
-
rewrite
big_seq_cond
[
in
X
in
_
<=
X
]
big_seq_cond
.
...
...
@@ -272,6 +272,21 @@ Section SumArithmetic.
move
=>
i
;
rewrite
mem_index_iota
;
move
=>
/
andP
[_
LT
]
.
by
apply
ALL
.
Qed
.
Lemma
sum_pred_diff
:
forall
(
T
:
eqType
)
(
rs
:
seq
T
)
(
P
:
T
->
bool
)
(
F
:
T
->
nat
),
\
sum_
(
r
<-
rs
|
P
r
)
F
r
=
\
sum_
(
r
<-
rs
)
F
r
-
\
sum_
(
r
<-
rs
|
~~
P
r
)
F
r
.
Proof
.
clear
;
intros
.
induction
rs
;
first
by
rewrite
!
big_nil
subn0
.
rewrite
!
big_cons
!
IHrs
;
clear
IHrs
.
case
(
P
a
);
simpl
;
last
by
rewrite
subnDl
.
rewrite
addnBA
;
first
by
done
.
rewrite
big_mkcond
leq_sum
//.
intros
t
_
.
by
case
(
P
t
)
.
Qed
.
Lemma
telescoping_sum
:
forall
(
T
:
Type
)
(
F
:
T
->
nat
)
r
(
x0
:
T
),
...
...
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