Documentation
Projects
.
System
.
Misc
Search
return to top
source
Imports
Init
Projects.System.Util
Imported by
System
.
Misc
.
aux₁
System
.
Misc
.
aux₂
System
.
Misc
.
aux₃
System
.
Misc
.
aux₅
System
.
Misc
.
cntrex₁
System
.
Misc
.
aux₆
System
.
Misc
.
aux₇
System
.
Misc
.
cntrex₂
System
.
Misc
.
aux₈
System
.
Misc
.
cntrex₃
System
.
Misc
.
cntrex₄
System
.
Misc
.
aux₉
System
.
Misc
.
aux₁₀
System
.
Misc
.
aux₁₁
System
.
Misc
.
cntrex₅
System
.
Misc
.
cntrex₆
System
.
Misc
.
cntrex₇
System
.
Misc
.
aux₁₄
System
.
Misc
.
aux₁₅
System
.
Misc
.
aux₁₆
source
theorem
System
.
Misc
.
aux₁
{
S
T
:
Type
u}
{
sys
:
System
S
T
}
{
s
:
S
}
{
t
:
T
}
{
s'
:
S
}
(
h₁
:
sys
.
validTr
s
t
)
(
h₂
:
sys
.
tr!
s
t
=
s'
)
:
sys
.
tr
s
t
=
some
s'
source
theorem
System
.
Misc
.
aux₂
{
S
T
:
Type
u}
{
sys
:
System
S
T
}
{
s
:
S
}
{
t
:
T
}
(
h₁
:
¬
sys
.
validTr
s
t
)
:
sys
.
tr!
s
t
=
s
source
theorem
System
.
Misc
.
aux₃
{
S
T
:
Type
u}
{
sys
:
System
S
T
}
{
s
:
S
}
{
ts
:
List
T
}
:
∃ (
s'
:
S
) (
rs
:
List
T
),
sys
.
trs
s
ts
=
(
s'
,
rs
)
∧
rs
.
length
≤
ts
.
length
source
theorem
System
.
Misc
.
aux₅
{
S
T
:
Type
u}
{
sys
:
System
S
T
}
{
f
:
S
→
T
}
{
s
:
S
}
{
m
:
ℕ
}
:
∃ (
s₂
:
S
) (
l
:
ℕ
),
sys
.
simulate
f
s
m
=
(
s₂
,
l
)
source
theorem
System
.
Misc
.
cntrex₁
:
¬
∀ (
S
T
:
Type
) (
sys
:
System
S
T
) (
f
:
S
→
T
) (
s
:
S
) (
n
:
ℕ
),
(∀ (
s'
:
S
),
¬
sys
.
hasTr
s'
)
→
∃ (
k
:
ℕ
) (
s'
:
S
),
sys
.
simulate
f
s
n
=
(
s'
,
k
)
∧
0
<
k
source
theorem
System
.
Misc
.
aux₆
{
S
T
:
Type
u}
{
sys
:
System
S
T
}
{
a
b
c
:
S
}
(
h₁
:
sys
.
Reachable
a
b
)
(
h₂
:
sys
.
Reachable
b
c
)
:
sys
.
Reachable
a
c
source
theorem
System
.
Misc
.
aux₇
{
S
T
:
Type
u}
{
sys
:
System
S
T
}
{
f
:
S
→
T
}
{
s
:
S
}
{
n
:
ℕ
}
{
s'
:
S
}
(
h₁
:
sys
.
simulate
f
s
n
=
(
s'
,
0
)
)
:
sys
.
Reachable
s
s'
source
theorem
System
.
Misc
.
cntrex₂
:
¬
∀ (
S
T
:
Type
) (
sys
:
System
S
T
) (
a
:
sys
.
DecidableHasTr
),
∃ (
f
:
S
→
T
),
sys
.
SimFn
f
source
theorem
System
.
Misc
.
aux₈
{
S
T
:
Type
u}
{
sys
:
System
S
T
}
{
f
:
S
→
T
}
{
s
:
S
}
{
n
:
ℕ
}
:
∃!
p
:
S
×
ℕ
,
sys
.
simulate
f
s
n
=
(
p
.1
,
p
.2
)
source
theorem
System
.
Misc
.
cntrex₃
:
¬
∀ (
α
β
:
Type
) (
P
:
α
→
Prop
),
(
¬
∀ (
x
:
α
),
P
x
) →
¬
∀ (
x
:
α
) (
x_1
:
β
),
P
x
source
theorem
System
.
Misc
.
cntrex₄
:
¬
∀ (
S
T
:
Type
) (
sys
:
System
S
T
) (
s
:
S
),
sys
.
Acyclic
s
→
∀ (
f
:
S
→
T
),
sys
.
SimFn
f
→
∀ (
n
m
:
ℕ
) (
sn
sm
:
S
) (
x
y
:
ℕ
),
n
<
m
→
sys
.
simulate
f
s
n
=
(
sn
,
x
)
→
sys
.
simulate
f
s
m
=
(
sm
,
y
)
→
sn
≠
sm
source
theorem
System
.
Misc
.
aux₉
{
S
T
:
Type
u}
{
sys
:
System
S
T
}
{
s
:
S
}
[
h₁
:
sys
.
Acyclic
s
]
{
f
:
S
→
T
}
[
h₂
:
sys
.
SimFn
f
]
{
n
m
:
ℕ
}
{
sn
sm
:
S
}
(
h₃
:
n
<
m
)
:
∃ (
x
:
ℕ
) (
y
:
ℕ
),
sys
.
simulate
f
s
n
=
(
sn
,
x
)
→
sys
.
simulate
f
s
m
=
(
sm
,
y
)
→
sn
≠
sm
source
theorem
System
.
Misc
.
aux₁₀
{
S
T
:
Type
u}
{
sys
:
System
S
T
}
{
s
:
S
}
[
h₁
:
sys
.
Acyclic
s
]
{
f
:
S
→
T
}
[
h₂
:
sys
.
SimFn
f
]
{
n
m
:
ℕ
}
{
sn
sm
:
S
}
(
h₃
:
n
<
m
)
:
∃ (
x
:
ℕ
),
sys
.
simulate
f
s
n
=
(
sn
,
x
)
→
sys
.
simulate
f
s
m
=
(
sm
,
x
)
→
sn
≠
sm
source
theorem
System
.
Misc
.
aux₁₁
{
S
T
:
Type
u}
{
sys
:
System
S
T
}
{
s
:
S
}
[
h₁
:
sys
.
Acyclic
s
]
{
f
:
S
→
T
}
[
h₂
:
sys
.
SimFn
f
]
{
n
m
:
ℕ
}
{
sn
sm
:
S
}
(
h₃
:
n
<
m
)
{
x
:
ℕ
}
(
h₄
:
sys
.
simulate
f
s
n
=
(
sn
,
x
)
)
(
h₅
:
sys
.
simulate
f
s
m
=
(
sm
,
x
)
)
:
sn
≠
sm
source
theorem
System
.
Misc
.
cntrex₅
:
¬
∀ (
S
T
:
Type
) (
sys
:
System
S
T
) [
Finite
S
] {
s
:
S
} [
sys
.
Acyclic
s
] {
f
:
S
→
T
} [
sys
.
SimFn
f
],
∃ (
N
:
ℕ
),
∀ (
n
:
ℕ
),
N
≤
n
→
∃ (
k
:
ℕ
),
0
<
k
∧
∀ (
x
:
S
),
sys
.
simulate
f
s
n
=
(
x
,
k
)
source
theorem
System
.
Misc
.
cntrex₆
:
¬
∀ (
S
T
:
Type
) (
sys
:
System
S
T
) [
Finite
S
] {
s
:
S
} [
sys
.
Acyclic
s
] {
f
:
S
→
T
} [
sys
.
SimFn
f
] {
x
:
S
},
∃ (
N
:
ℕ
),
∀ (
n
:
ℕ
),
N
≤
n
→
∃ (
k
:
ℕ
),
0
<
k
∧
sys
.
simulate
f
s
n
=
(
x
,
k
)
source
theorem
System
.
Misc
.
cntrex₇
:
¬
∀ (
S
T
:
Type
) (
sys
:
System
S
T
) (
a
:
S
) (
ts₁
ts₂
:
List
T
) (
b
:
S
),
(∀
t
∈
ts₁
,
sys
.
validTr
b
t
)
→
sys
.
trs
a
(
ts₁
++
ts₂
)
=
sys
.
trs
(
sys
.
trs
a
ts₁
)
.1
ts₂
source
theorem
System
.
Misc
.
aux₁₄
{
S
T
:
Type
u}
{
sys
:
System
S
T
}
{
a
:
S
}
{
ts₁
ts₂
:
List
T
}
(
h₁
:
∀ (
a
:
S
),
∀
t
∈
ts₁
,
sys
.
validTr
a
t
)
:
sys
.
trs
a
(
ts₁
++
ts₂
)
=
sys
.
trs
(
sys
.
trs
a
ts₁
)
.1
ts₂
source
theorem
System
.
Misc
.
aux₁₅
{
S
T
:
Type
u}
{
sys
:
System
S
T
}
{
f
:
S
→
T
}
{
s
:
S
}
{
n
:
ℕ
}
:
sys
.
simulate
f
s
(
n
+
1
)
=
match
sys
.
tr
s
(
f
s
)
with |
none
=>
(
s
,
n
+
1
)
|
some
s'
=>
sys
.
simulate
f
s'
n
source
theorem
System
.
Misc
.
aux₁₆
:
∃!
f
:
ℕ
→
ℕ
,
f
0
=
0
∧
∀ (
n
:
ℕ
),
f
(
n
+
1
)
=
f
(
f
n
)