Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
N
NCCoq - Formally Proven Network Calculus
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Deploy
Releases
Model registry
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
Repository analytics
Model experiments
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
Pierre Roux
NCCoq - Formally Proven Network Calculus
Commits
0ee7cda1
Commit
0ee7cda1
authored
3 years ago
by
Lucien RAKOTOMALALA
Browse files
Options
Downloads
Patches
Plain Diff
Update old names
Replace UIB_departure with maximal_departure
parent
0e1ed3d0
No related branches found
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
examples/case_study/arbitrary_flows.v
+27
-27
27 additions, 27 deletions
examples/case_study/arbitrary_flows.v
with
27 additions
and
27 deletions
examples/case_study/arbitrary_flows.v
+
27
−
27
View file @
0ee7cda1
...
@@ -144,14 +144,8 @@ Section switch_1.
...
@@ -144,14 +144,8 @@ Section switch_1.
Definition
beta_S1
:
Fup
:=
Definition
beta_S1
:
Fup
:=
delta
(
hDev
(
alpha1
+
alpha2
+
alpha3
)
%
F
beta1
)
%
:
nngenum
.
delta
(
hDev
(
alpha1
+
alpha2
+
alpha3
)
%
F
beta1
)
%
:
nngenum
.
Definition
alpha1_S1
:=
((
alpha1
/
beta_S1
)
+
delta
0
)
%
D
.
Definition
alpha2_S1
:=
((
alpha2
/
beta_S1
)
+
delta
0
)
%
D
.
Definition
alpha3_S1
:=
((
alpha3
/
beta_S1
)
+
delta
0
)
%
D
.
Definition
alpha_S1
:
Fup
^
3
:=
finfun_of_tuple
[
tuple
alpha1
;
alpha2
;
alpha3
]
.
Definition
alpha_S1
:
Fup
^
3
:=
finfun_of_tuple
[
tuple
alpha1
;
alpha2
;
alpha3
]
.
Let
alpha_S1_out
:
Fup
^
3
:=
finfun_of_tuple
[
tuple
alpha1_S1
;
alpha2_S1
;
alpha3_S1
]
.
Lemma
min_residual_service_S1
i
:
Lemma
min_residual_service_S1
i
:
is_min_service
is_min_service
(
residual_server_constr
S1
i
[
ffun
i
=>
alpha_S1
i
:
F
])
beta_S1
.
(
residual_server_constr
S1
i
[
ffun
i
=>
alpha_S1
i
:
F
])
beta_S1
.
...
@@ -162,6 +156,12 @@ have -> : (alpha1 + alpha2 + alpha3 = \sum_j alpha_S1 j)%F.
...
@@ -162,6 +156,12 @@ have -> : (alpha1 + alpha2 + alpha3 = \sum_j alpha_S1 j)%F.
exact
:
FIFO_delay
.
exact
:
FIFO_delay
.
Qed
.
Qed
.
Definition
alpha1_S1
:=
((
alpha1
/
beta_S1
)
+
delta
0
)
%
D
.
Definition
alpha2_S1
:=
((
alpha2
/
beta_S1
)
+
delta
0
)
%
D
.
Definition
alpha3_S1
:=
((
alpha3
/
beta_S1
)
+
delta
0
)
%
D
.
Let
alpha_S1_out
:
Fup
^
3
:=
finfun_of_tuple
[
tuple
alpha1_S1
;
alpha2_S1
;
alpha3_S1
]
.
Lemma
alpha_S1_correct
i
:
Lemma
alpha_S1_correct
i
:
is_maximal_arrival
(
finfun_of_tuple
[
tuple
F1
;
F2
;
F3
]
i
)
(
alpha_S1
i
)
.
is_maximal_arrival
(
finfun_of_tuple
[
tuple
F1
;
F2
;
F3
]
i
)
(
alpha_S1
i
)
.
Proof
.
Proof
.
...
@@ -171,7 +171,7 @@ case: i => -[| [| [|//]]] ?; rewrite !ffunE.
...
@@ -171,7 +171,7 @@ case: i => -[| [| [|//]]] ?; rewrite !ffunE.
-
exact
:
Halpha3
.
-
exact
:
Halpha3
.
Qed
.
Qed
.
Lemma
UIB
_departure_S1
i
:
Lemma
maximal
_departure_S1
i
:
is_maximal_arrival
is_maximal_arrival
(
finfun_of_tuple
[
tuple
F1_S1
;
F2_S1
;
F3_S1
]
i
)
(
finfun_of_tuple
[
tuple
F1_S1
;
F2_S1
;
F3_S1
]
i
)
(
alpha_S1_out
i
)
.
(
alpha_S1_out
i
)
.
...
@@ -192,7 +192,7 @@ Section switch_2_1.
...
@@ -192,7 +192,7 @@ Section switch_2_1.
Lemma
Halpha1_S2
:
is_maximal_arrival
F1_S1
alpha1_S1
.
Lemma
Halpha1_S2
:
is_maximal_arrival
F1_S1
alpha1_S1
.
Proof
.
Proof
.
move
:
(
UIB
_departure_S1
(
inord
0
))
.
move
:
(
maximal
_departure_S1
(
inord
0
))
.
by
rewrite
!
ffunE
/
inord
/
insubd
insubT
.
by
rewrite
!
ffunE
/
inord
/
insubd
insubT
.
Qed
.
Qed
.
...
@@ -212,7 +212,7 @@ have {1}-> : [ffun=> alpha1_S1 : F] = [ffun i : 'I_1 => [ffun=> alpha1_S1] i : F
...
@@ -212,7 +212,7 @@ have {1}-> : [ffun=> alpha1_S1 : F] = [ffun i : 'I_1 => [ffun=> alpha1_S1] i : F
by
apply
:
FIFO_delay
;
[
exact
:
FIFO_one_server
|]
.
by
apply
:
FIFO_delay
;
[
exact
:
FIFO_one_server
|]
.
Qed
.
Qed
.
Lemma
UIB
_departure_S2_1
:
is_maximal_arrival
F1_S2
alpha1_S2
.
Lemma
maximal
_departure_S2_1
:
is_maximal_arrival
F1_S2
alpha1_S2
.
Proof
.
Proof
.
apply
:
maximal_arrival_F_min
;
[|
apply
:
maximal_arrival_delta_0
];
apply
:
maximal_arrival_F_min
;
[|
apply
:
maximal_arrival_delta_0
];
apply
:
output_arrival_curve_mp_Fup
;
apply
:
output_arrival_curve_mp_Fup
;
...
@@ -228,7 +228,7 @@ Section switch_2_2.
...
@@ -228,7 +228,7 @@ Section switch_2_2.
Lemma
Halpha2_S2
:
is_maximal_arrival
F2_S1
alpha2_S1
.
Lemma
Halpha2_S2
:
is_maximal_arrival
F2_S1
alpha2_S1
.
Proof
.
Proof
.
move
:
(
UIB
_departure_S1
(
inord
1
))
.
move
:
(
maximal
_departure_S1
(
inord
1
))
.
by
rewrite
!
ffunE
/
inord
/
insubd
insubT
.
by
rewrite
!
ffunE
/
inord
/
insubd
insubT
.
Qed
.
Qed
.
...
@@ -248,7 +248,7 @@ have {1}-> : [ffun=> alpha2_S1 : F] = [ffun i : 'I_1 => [ffun=> alpha2_S1] i : F
...
@@ -248,7 +248,7 @@ have {1}-> : [ffun=> alpha2_S1 : F] = [ffun i : 'I_1 => [ffun=> alpha2_S1] i : F
by
apply
:
FIFO_delay
;
[
exact
:
FIFO_one_server
|]
.
by
apply
:
FIFO_delay
;
[
exact
:
FIFO_one_server
|]
.
Qed
.
Qed
.
Lemma
UIB
_departure_S2_2
:
is_maximal_arrival
F2_S2
alpha2_S2
.
Lemma
maximal
_departure_S2_2
:
is_maximal_arrival
F2_S2
alpha2_S2
.
Proof
.
Proof
.
apply
:
maximal_arrival_F_min
;
[|
apply
:
maximal_arrival_delta_0
];
apply
:
maximal_arrival_F_min
;
[|
apply
:
maximal_arrival_delta_0
];
apply
:
output_arrival_curve_mp_Fup
;
apply
:
output_arrival_curve_mp_Fup
;
...
@@ -268,7 +268,7 @@ Definition alpha3_S2 := ((alpha3_S1 / beta_S2_3) + delta 0)%D.
...
@@ -268,7 +268,7 @@ Definition alpha3_S2 := ((alpha3_S1 / beta_S2_3) + delta 0)%D.
Lemma
Halpha3_S2
:
is_maximal_arrival
F3_S1
alpha3_S1
.
Lemma
Halpha3_S2
:
is_maximal_arrival
F3_S1
alpha3_S1
.
Proof
.
Proof
.
move
:
(
UIB
_departure_S1
(
inord
2
))
.
move
:
(
maximal
_departure_S1
(
inord
2
))
.
by
rewrite
!
ffunE
/
inord
/
insubd
insubT
.
by
rewrite
!
ffunE
/
inord
/
insubd
insubT
.
Qed
.
Qed
.
...
@@ -284,7 +284,7 @@ have {1}-> : [ffun=> alpha3_S1 : F] = [ffun i : 'I_1 => [ffun=> alpha3_S1] i : F
...
@@ -284,7 +284,7 @@ have {1}-> : [ffun=> alpha3_S1 : F] = [ffun i : 'I_1 => [ffun=> alpha3_S1] i : F
by
apply
:
FIFO_delay
;
[
exact
:
FIFO_one_server
|]
.
by
apply
:
FIFO_delay
;
[
exact
:
FIFO_one_server
|]
.
Qed
.
Qed
.
Lemma
UIB
_departure_S2_3
:
is_maximal_arrival
F3_S2
alpha3_S2
.
Lemma
maximal
_departure_S2_3
:
is_maximal_arrival
F3_S2
alpha3_S2
.
Proof
.
Proof
.
apply
:
maximal_arrival_F_min
;
[|
apply
:
maximal_arrival_delta_0
];
apply
:
maximal_arrival_F_min
;
[|
apply
:
maximal_arrival_delta_0
];
apply
:
output_arrival_curve_mp_Fup
;
apply
:
output_arrival_curve_mp_Fup
;
...
@@ -319,13 +319,13 @@ Lemma alpha_S3_correct i :
...
@@ -319,13 +319,13 @@ Lemma alpha_S3_correct i :
is_maximal_arrival
(
finfun_of_tuple
[
tuple
F1_S2
;
F4
]
i
)
(
alpha_S3
i
)
.
is_maximal_arrival
(
finfun_of_tuple
[
tuple
F1_S2
;
F4
]
i
)
(
alpha_S3
i
)
.
Proof
.
Proof
.
case
:
i
=>
-
[|
[|
//
]]
?;
rewrite
!
ffunE
.
case
:
i
=>
-
[|
[|
//
]]
?;
rewrite
!
ffunE
.
-
exact
:
UIB
_departure_S2_1
.
-
exact
:
maximal
_departure_S2_1
.
-
exact
:
Halpha4
.
-
exact
:
Halpha4
.
Qed
.
Qed
.
Let
alpha_S3_out
:=
finfun_of_tuple
[
tuple
alpha1_S3
;
alpha4_S3
]
.
Let
alpha_S3_out
:=
finfun_of_tuple
[
tuple
alpha1_S3
;
alpha4_S3
]
.
Lemma
UIB
_departure_S3
i
:
Lemma
maximal
_departure_S3
i
:
is_maximal_arrival
is_maximal_arrival
(
finfun_of_tuple
[
tuple
F1_S3
;
F4_S3
]
i
)
(
alpha_S3_out
i
)
.
(
finfun_of_tuple
[
tuple
F1_S3
;
F4_S3
]
i
)
(
alpha_S3_out
i
)
.
Proof
.
Proof
.
...
@@ -333,7 +333,7 @@ case: i => -[| [|//]] Hi; rewrite !ffunE; unfold_tnth;
...
@@ -333,7 +333,7 @@ case: i => -[| [|//]] Hi; rewrite !ffunE; unfold_tnth;
(
apply
:
maximal_arrival_F_min
;
[|
apply
:
maximal_arrival_delta_0
];
(
apply
:
maximal_arrival_F_min
;
[|
apply
:
maximal_arrival_delta_0
];
apply
:
output_arrival_curve_mp_Fup
;
apply
:
output_arrival_curve_mp_Fup
;
[|
exact
:
(
@
min_residual_service_S3
(
Ordinal
Hi
))
[|
exact
:
(
@
min_residual_service_S3
(
Ordinal
Hi
))
|(
exact
:
UIB
_departure_S2_1
||
by
[])];
|(
exact
:
maximal
_departure_S2_1
||
by
[])];
eexists
;
eexists
;
split
;
[
exact
:
H_server_S3
|];
eexists
;
eexists
;
split
;
[
exact
:
H_server_S3
|];
rewrite
!
ffunE
;
split
=>
//
;
split
=>
//
j
;
rewrite
!
ffunE
;
split
=>
//
;
split
=>
//
j
;
rewrite
ffunE
;
exact
:
alpha_S3_correct
)
.
rewrite
ffunE
;
exact
:
alpha_S3_correct
)
.
...
@@ -364,13 +364,13 @@ Lemma alpha_S4_correct i :
...
@@ -364,13 +364,13 @@ Lemma alpha_S4_correct i :
is_maximal_arrival
(
finfun_of_tuple
[
tuple
F3_S2
;
F5
]
i
)
(
alpha_S4
i
)
.
is_maximal_arrival
(
finfun_of_tuple
[
tuple
F3_S2
;
F5
]
i
)
(
alpha_S4
i
)
.
Proof
.
Proof
.
case
:
i
=>
-
[|
[|
//
]]
?;
rewrite
!
ffunE
.
case
:
i
=>
-
[|
[|
//
]]
?;
rewrite
!
ffunE
.
-
exact
:
UIB
_departure_S2_3
.
-
exact
:
maximal
_departure_S2_3
.
-
exact
:
Halpha5
.
-
exact
:
Halpha5
.
Qed
.
Qed
.
Let
alpha_S4_out
:=
finfun_of_tuple
[
tuple
alpha3_S4
;
alpha5_S4
]
.
Let
alpha_S4_out
:=
finfun_of_tuple
[
tuple
alpha3_S4
;
alpha5_S4
]
.
Lemma
UIB
_departure_S4
i
:
Lemma
maximal
_departure_S4
i
:
is_maximal_arrival
is_maximal_arrival
(
finfun_of_tuple
[
tuple
F3_S4
;
F5_S4
]
i
)
(
alpha_S4_out
i
)
.
(
finfun_of_tuple
[
tuple
F3_S4
;
F5_S4
]
i
)
(
alpha_S4_out
i
)
.
Proof
.
Proof
.
...
@@ -378,7 +378,7 @@ case: i => -[| [|//]] Hi; rewrite !ffunE; unfold_tnth;
...
@@ -378,7 +378,7 @@ case: i => -[| [|//]] Hi; rewrite !ffunE; unfold_tnth;
(
apply
:
maximal_arrival_F_min
;
[|
apply
:
maximal_arrival_delta_0
];
(
apply
:
maximal_arrival_F_min
;
[|
apply
:
maximal_arrival_delta_0
];
apply
:
output_arrival_curve_mp_Fup
;
apply
:
output_arrival_curve_mp_Fup
;
[|
exact
:
(
@
min_residual_service_S4
(
Ordinal
Hi
))
[|
exact
:
(
@
min_residual_service_S4
(
Ordinal
Hi
))
|(
exact
:
UIB
_departure_S2_3
||
by
[])];
|(
exact
:
maximal
_departure_S2_3
||
by
[])];
eexists
;
eexists
;
split
;
[
exact
:
H_server_S4
|];
eexists
;
eexists
;
split
;
[
exact
:
H_server_S4
|];
rewrite
!
ffunE
;
split
=>
//
;
split
=>
//
j
;
rewrite
!
ffunE
;
split
=>
//
;
split
=>
//
j
;
rewrite
ffunE
;
exact
:
alpha_S4_correct
)
.
rewrite
ffunE
;
exact
:
alpha_S4_correct
)
.
...
@@ -390,13 +390,13 @@ Section switch_5_1.
...
@@ -390,13 +390,13 @@ Section switch_5_1.
Lemma
Halpha1_S5
:
is_maximal_arrival
F1_S3
alpha1_S3
.
Lemma
Halpha1_S5
:
is_maximal_arrival
F1_S3
alpha1_S3
.
Proof
.
Proof
.
move
:
(
UIB
_departure_S3
(
inord
0
))
.
move
:
(
maximal
_departure_S3
(
inord
0
))
.
by
rewrite
!
ffunE
/
inord
/
insubd
insubT
.
by
rewrite
!
ffunE
/
inord
/
insubd
insubT
.
Qed
.
Qed
.
Lemma
Halpha3_S5
:
is_maximal_arrival
F3_S4
alpha3_S4
.
Lemma
Halpha3_S5
:
is_maximal_arrival
F3_S4
alpha3_S4
.
Proof
.
Proof
.
move
:
(
UIB
_departure_S4
(
inord
0
))
.
move
:
(
maximal
_departure_S4
(
inord
0
))
.
by
rewrite
!
ffunE
/
inord
/
insubd
insubT
.
by
rewrite
!
ffunE
/
inord
/
insubd
insubT
.
Qed
.
Qed
.
...
@@ -421,7 +421,7 @@ Lemma alpha_S5_correct i :
...
@@ -421,7 +421,7 @@ Lemma alpha_S5_correct i :
Proof
.
Proof
.
case
:
i
=>
-
[|
[|
[|
//
]]]
?;
rewrite
!
ffunE
.
case
:
i
=>
-
[|
[|
[|
//
]]]
?;
rewrite
!
ffunE
.
-
exact
:
Halpha1_S5
.
-
exact
:
Halpha1_S5
.
-
exact
:
UIB
_departure_S2_2
.
-
exact
:
maximal
_departure_S2_2
.
-
exact
:
Halpha3_S5
.
-
exact
:
Halpha3_S5
.
Qed
.
Qed
.
...
@@ -431,7 +431,7 @@ Definition alpha3_S5 := ((alpha3_S4 / beta_S5_1) + delta 0)%D.
...
@@ -431,7 +431,7 @@ Definition alpha3_S5 := ((alpha3_S4 / beta_S5_1) + delta 0)%D.
Let
alpha_S5_out
:=
finfun_of_tuple
[
tuple
alpha1_S5
;
alpha2_S5
;
alpha3_S5
]
.
Let
alpha_S5_out
:=
finfun_of_tuple
[
tuple
alpha1_S5
;
alpha2_S5
;
alpha3_S5
]
.
Lemma
UIB
_departure_S5
i
:
Lemma
maximal
_departure_S5
i
:
is_maximal_arrival
is_maximal_arrival
(
finfun_of_tuple
[
tuple
F1_S5
;
F2_S5
;
F3_S5
]
i
)
(
finfun_of_tuple
[
tuple
F1_S5
;
F2_S5
;
F3_S5
]
i
)
(
alpha_S5_out
i
)
.
(
alpha_S5_out
i
)
.
...
@@ -440,7 +440,7 @@ case: i => -[| [| [|//]]] Hi; rewrite !ffunE; unfold_tnth;
...
@@ -440,7 +440,7 @@ case: i => -[| [| [|//]]] Hi; rewrite !ffunE; unfold_tnth;
(
apply
:
maximal_arrival_F_min
;
[|
apply
:
maximal_arrival_delta_0
];
(
apply
:
maximal_arrival_F_min
;
[|
apply
:
maximal_arrival_delta_0
];
apply
:
output_arrival_curve_mp_Fup
;
apply
:
output_arrival_curve_mp_Fup
;
[|
exact
:
(
@
min_residual_service_S5_1
(
Ordinal
Hi
))|]);
[|
exact
:
(
@
min_residual_service_S5_1
(
Ordinal
Hi
))|]);
[|
exact
:
Halpha1_S5
|
|
exact
:
UIB
_departure_S2_2
|
|
exact
:
Halpha3_S5
];
[|
exact
:
Halpha1_S5
|
|
exact
:
maximal
_departure_S2_2
|
|
exact
:
Halpha3_S5
];
(
eexists
;
eexists
;
split
;
[
exact
:
H_server_S5_1
|];
(
eexists
;
eexists
;
split
;
[
exact
:
H_server_S5_1
|];
rewrite
!
ffunE
;
split
=>
//
;
split
=>
//
j
;
rewrite
!
ffunE
;
split
=>
//
;
split
=>
//
j
;
rewrite
ffunE
;
exact
:
alpha_S5_correct
)
.
rewrite
ffunE
;
exact
:
alpha_S5_correct
)
.
...
@@ -452,13 +452,13 @@ Section switch_5_2.
...
@@ -452,13 +452,13 @@ Section switch_5_2.
Lemma
Halpha4_S5
:
is_maximal_arrival
F4_S3
alpha4_S3
.
Lemma
Halpha4_S5
:
is_maximal_arrival
F4_S3
alpha4_S3
.
Proof
.
Proof
.
move
:
(
UIB
_departure_S3
(
inord
1
))
.
move
:
(
maximal
_departure_S3
(
inord
1
))
.
by
rewrite
!
ffunE
/
inord
/
insubd
insubT
.
by
rewrite
!
ffunE
/
inord
/
insubd
insubT
.
Qed
.
Qed
.
Lemma
Halpha5_S5
:
is_maximal_arrival
F5_S4
alpha5_S4
.
Lemma
Halpha5_S5
:
is_maximal_arrival
F5_S4
alpha5_S4
.
Proof
.
Proof
.
move
:
(
UIB
_departure_S4
(
inord
1
))
.
move
:
(
maximal
_departure_S4
(
inord
1
))
.
by
rewrite
!
ffunE
/
inord
/
insubd
insubT
.
by
rewrite
!
ffunE
/
inord
/
insubd
insubT
.
Qed
.
Qed
.
...
@@ -490,7 +490,7 @@ Definition alpha5_S5 := ((alpha5_S4 / beta_S5_2) + delta 0)%D.
...
@@ -490,7 +490,7 @@ Definition alpha5_S5 := ((alpha5_S4 / beta_S5_2) + delta 0)%D.
Let
alpha_S5_2_out
:=
finfun_of_tuple
[
tuple
alpha4_S5
;
alpha5_S5
]
.
Let
alpha_S5_2_out
:=
finfun_of_tuple
[
tuple
alpha4_S5
;
alpha5_S5
]
.
Lemma
UIB
_departure_S
6
i
:
Lemma
maximal
_departure_S
5_2
i
:
is_maximal_arrival
is_maximal_arrival
(
finfun_of_tuple
[
tuple
F4_S5
;
F5_S5
]
i
)
(
finfun_of_tuple
[
tuple
F4_S5
;
F5_S5
]
i
)
(
alpha_S5_2_out
i
)
.
(
alpha_S5_2_out
i
)
.
...
...
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