Article STIRL2_1, MML version 4.99.1005
:: STIRL2_1:th 1
theorem
for b1 being non empty Element of bool NAT holds
min b1 = min* b1;
:: STIRL2_1:th 2
theorem
for b1, b2 being non empty Element of bool NAT holds
min(min b1,min b2) = min (b1 \/ b2);
:: STIRL2_1:th 3
theorem
for b1, b2 being Element of bool NAT holds
min(min* b1,min* b2) <= min* (b1 \/ b2);
:: STIRL2_1:th 4
theorem
for b1, b2 being Element of bool NAT
st not min* b1 in b1 /\ b2
holds min* b1 = min* (b1 \ b2);
:: STIRL2_1:th 5
theorem
for b1 being Element of NAT holds
min* {b1} = b1 & min {b1} = b1;
:: STIRL2_1:th 6
theorem
for b1, b2 being Element of NAT holds
min* {b1,b2} = min(b1,b2) & min {b1,b2} = min(b1,b2);
:: STIRL2_1:th 7
theorem
for b1, b2, b3 being Element of NAT holds
min* {b1,b2,b3} = min(b1,min(b2,b3));
:: STIRL2_1:th 8
theorem
for b1 being Element of NAT holds
b1 is Element of bool NAT;
:: STIRL2_1:condreg 1
registration
let a1 be Element of NAT;
cluster -> natural (Element of a1);
end;
:: STIRL2_1:th 9
theorem
for b1 being Element of NAT
for b2 being non empty Element of bool NAT
st b2 c= b1
holds b1 - 1 is Element of NAT;
:: STIRL2_1:th 10
theorem
for b1, b2 being Element of NAT
st b1 in b2
holds b1 <= b2 - 1 & b2 - 1 is Element of NAT;
:: STIRL2_1:th 11
theorem
for b1 being Element of NAT holds
min* b1 = 0;
:: STIRL2_1:th 12
theorem
for b1 being Element of NAT
for b2 being non empty Element of bool NAT
st b2 c= b1
holds min* b2 <= b1 - 1;
:: STIRL2_1:th 13
theorem
for b1 being Element of NAT
for b2 being non empty Element of bool NAT
st b2 c= b1 & b2 <> {b1 - 1}
holds min* b2 < b1 - 1;
:: STIRL2_1:th 14
theorem
for b1 being Element of NAT
for b2 being Element of bool NAT
st b2 c= b1 & 0 < b1
holds min* b2 <= b1 - 1;
:: STIRL2_1:funcnot 1 => STIRL2_1:func 1
definition
let a1 be Element of NAT;
let a2 be set;
let a3 be Function-like quasi_total Relation of a1,a2;
let a4 be set;
redefine func a3 " a4 -> Element of bool NAT;
end;
:: STIRL2_1:funcnot 2 => STIRL2_1:func 2
definition
let a1 be set;
let a2 be Element of NAT;
let a3 be Function-like quasi_total Relation of a1,a2;
let a4 be set;
redefine func a3 . a4 -> Element of a2;
end;
:: STIRL2_1:funcreg 1
registration
let a1 be set;
let a2 be Element of bool NAT;
let a3 be Function-like quasi_total Relation of a1,a2;
let a4 be set;
cluster a3 . a4 -> natural;
end;
:: STIRL2_1:attrnot 1 => STIRL2_1:attr 1
definition
let a1, a2 be natural set;
let a3 be Function-like quasi_total Relation of a1,a2;
attr a3 is "increasing means
(a1 = 0 implies a2 = 0) &
(a2 = 0 implies a1 = 0) &
(for b1, b2 being Element of NAT
st b1 in rng a3 & b2 in rng a3 & b1 < b2
holds min* (a3 " {b1}) < min* (a3 " {b2}));
end;
:: STIRL2_1:dfs 1
definiens
let a1, a2 be natural set;
let a3 be Function-like quasi_total Relation of a1,a2;
To prove
a3 is "increasing
it is sufficient to prove
thus (a1 = 0 implies a2 = 0) &
(a2 = 0 implies a1 = 0) &
(for b1, b2 being Element of NAT
st b1 in rng a3 & b2 in rng a3 & b1 < b2
holds min* (a3 " {b1}) < min* (a3 " {b2}));
:: STIRL2_1:def 1
theorem
for b1, b2 being natural set
for b3 being Function-like quasi_total Relation of b1,b2 holds
b3 is "increasing(b1, b2)
iff
(b1 = 0 implies b2 = 0) &
(b2 = 0 implies b1 = 0) &
(for b4, b5 being Element of NAT
st b4 in rng b3 & b5 in rng b3 & b4 < b5
holds min* (b3 " {b4}) < min* (b3 " {b5}));
:: STIRL2_1:th 15
theorem
for b1, b2 being Element of NAT
for b3 being Function-like quasi_total Relation of b1,b2
st b1 = 0 & b2 = 0
holds b3 is onto(b1, b2) & b3 is "increasing(b1, b2);
:: STIRL2_1:th 16
theorem
for b1, b2, b3 being Element of NAT
for b4 being Function-like quasi_total Relation of b2,b1
st 0 < b2
holds min* (b4 " {b3}) <= b2 - 1;
:: STIRL2_1:th 17
theorem
for b1, b2 being Element of NAT
for b3 being Function-like quasi_total Relation of b1,b2
st b3 is onto(b1, b2)
holds b2 <= b1;
:: STIRL2_1:th 18
theorem
for b1, b2 being Element of NAT
for b3 being Function-like quasi_total Relation of b1,b2
st b3 is onto(b1, b2) & b3 is "increasing(b1, b2)
for b4 being Element of NAT
st b4 < b2
holds b4 <= min* (b3 " {b4});
:: STIRL2_1:th 19
theorem
for b1, b2 being Element of NAT
for b3 being Function-like quasi_total Relation of b2,b1
st b3 is onto(b2, b1) & b3 is "increasing(b2, b1)
for b4 being Element of NAT
st b4 < b1
holds min* (b3 " {b4}) <= (b2 - b1) + b4;
:: STIRL2_1:th 20
theorem
for b1, b2 being Element of NAT
for b3 being Function-like quasi_total Relation of b1,b2
st b3 is onto(b1, b2) & b3 is "increasing(b1, b2) & b1 = b2
holds b3 = id b1;
:: STIRL2_1:th 21
theorem
for b1, b2 being Element of NAT
for b3 being Function-like quasi_total Relation of b2,b1
st b3 = id b2 & 0 < b2
holds b3 is "increasing(b2, b1);
:: STIRL2_1:th 22
theorem
for b1, b2 being Element of NAT
st b1 = 0
iff
b2 = 0
holds ex b3 being Function-like quasi_total Relation of b1,b2 st
b3 is "increasing(b1, b2);
:: STIRL2_1:th 23
theorem
for b1, b2 being Element of NAT
st (b1 = 0 implies b2 = 0) & (b2 = 0 implies b1 = 0) & b2 <= b1
holds ex b3 being Function-like quasi_total Relation of b1,b2 st
b3 is onto(b1, b2) & b3 is "increasing(b1, b2);
:: STIRL2_1:sch 1
scheme STIRL2_1:sch 1
{F1 -> natural set,
F2 -> natural set}:
{b1 where b1 is Function-like quasi_total Relation of F1(),F2(): P1[b1]} is finite
:: STIRL2_1:th 24
theorem
for b1, b2 being natural set holds
{b3 where b3 is Function-like quasi_total Relation of b1,b2: b3 is onto(b1, b2) & b3 is "increasing(b1, b2)} is finite;
:: STIRL2_1:th 25
theorem
for b1, b2 being natural set holds
Card {b3 where b3 is Function-like quasi_total Relation of b1,b2: b3 is onto(b1, b2) & b3 is "increasing(b1, b2)} is Element of NAT;
:: STIRL2_1:funcnot 3 => STIRL2_1:func 3
definition
let a1, a2 be natural set;
func A1 block A2 -> Element of NAT equals
Card {b1 where b1 is Function-like quasi_total Relation of a1,a2: b1 is onto(a1, a2) & b1 is "increasing(a1, a2)};
end;
:: STIRL2_1:def 2
theorem
for b1, b2 being natural set holds
b1 block b2 = Card {b3 where b3 is Function-like quasi_total Relation of b1,b2: b3 is onto(b1, b2) & b3 is "increasing(b1, b2)};
:: STIRL2_1:th 26
theorem
for b1 being Element of NAT holds
b1 block b1 = 1;
:: STIRL2_1:th 27
theorem
for b1 being Element of NAT
st b1 <> 0
holds 0 block b1 = 0;
:: STIRL2_1:th 28
theorem
for b1 being Element of NAT holds
0 block b1 = 1
iff
b1 = 0;
:: STIRL2_1:th 29
theorem
for b1, b2 being Element of NAT
st b1 < b2
holds b1 block b2 = 0;
:: STIRL2_1:th 30
theorem
for b1 being Element of NAT holds
b1 block 0 = 1
iff
b1 = 0;
:: STIRL2_1:th 31
theorem
for b1 being Element of NAT
st b1 <> 0
holds b1 block 0 = 0;
:: STIRL2_1:th 32
theorem
for b1 being Element of NAT
st b1 <> 0
holds b1 block 1 = 1;
:: STIRL2_1:th 33
theorem
for b1, b2 being Element of NAT holds
(1 <= b1 & b1 <= b2 or b1 = b2)
iff
0 < b2 block b1;
:: STIRL2_1:sch 2
scheme STIRL2_1:sch 2
{F1 -> set,
F2 -> set,
F3 -> set,
F4 -> set,
F5 -> Function-like quasi_total Relation of F1(),F2(),
F6 -> set}:
ex b1 being Function-like quasi_total Relation of F3(),F4() st
b1 | F1() = F5() &
(for b2 being set
st b2 in F3() \ F1()
holds b1 . b2 = F6(b2))
provided
for b1 being set
st b1 in F3() \ F1()
holds F6(b1) in F4()
and
F1() c= F3() & F2() c= F4()
and
(F2() is empty implies F1() is empty);
:: STIRL2_1:sch 3
scheme STIRL2_1:sch 3
{F1 -> set,
F2 -> set,
F3 -> set,
F4 -> set,
F5 -> set}:
Card {b1 where b1 is Function-like quasi_total Relation of F1(),F2(): P1[b1, F1(), F2()]} = Card {b1 where b1 is Function-like quasi_total Relation of F3(),F4(): P1[b1, F3(), F4()] &
rng (b1 | F1()) c= F2() &
(for b2 being set
st b2 in F3() \ F1()
holds b1 . b2 = F5(b2))}
provided
for b1 being set
st b1 in F3() \ F1()
holds F5(b1) in F4()
and
F1() c= F3() & F2() c= F4()
and
(F2() is empty implies F1() is empty)
and
for b1 being Function-like quasi_total Relation of F3(),F4()
st for b2 being set
st b2 in F3() \ F1()
holds F5(b2) = b1 . b2
holds P1[b1, F3(), F4()]
iff
P1[b1 | F1(), F1(), F2()];
:: STIRL2_1:sch 4
scheme STIRL2_1:sch 4
{F1 -> set,
F2 -> set,
F3 -> set,
F4 -> set}:
Card {b1 where b1 is Function-like quasi_total Relation of F1(),F2(): P1[b1, F1(), F2()]} = Card {b1 where b1 is Function-like quasi_total Relation of F1() \/ {F3()},F2() \/ {F4()}: P1[b1, F1() \/ {F3()}, F2() \/ {F4()}] & rng (b1 | F1()) c= F2() & b1 . F3() = F4()}
provided
(F2() is empty implies F1() is empty)
and
not F3() in F1()
and
for b1 being Function-like quasi_total Relation of F1() \/ {F3()},F2() \/ {F4()}
st b1 . F3() = F4()
holds P1[b1, F1() \/ {F3()}, F2() \/ {F4()}]
iff
P1[b1 | F1(), F1(), F2()];
:: STIRL2_1:th 34
theorem
for b1, b2 being Element of NAT
for b3 being Function-like quasi_total Relation of b1 + 1,b2 + 1
st b3 is onto(b1 + 1, b2 + 1) &
b3 is "increasing(b1 + 1, b2 + 1) &
b3 " {b3 . b1} = {b1}
holds b3 . b1 = b2;
:: STIRL2_1:th 35
theorem
for b1, b2 being Element of NAT
for b3 being Function-like quasi_total Relation of b1 + 1,b2
st b2 <> 0 &
b3 " {b3 . b1} <> {b1}
holds ex b4 being Element of NAT st
b4 in b3 " {b3 . b1} & b4 <> b1;
:: STIRL2_1:th 36
theorem
for b1, b2, b3, b4 being Element of NAT
for b5 being Function-like quasi_total Relation of b1,b2
for b6 being Function-like quasi_total Relation of b1 + b3,b2 + b4
st b6 is "increasing(b1 + b3, b2 + b4) & b5 = b6 | b1
for b7, b8 being Element of NAT
st b7 in rng b5 & b8 in rng b5 & b7 < b8
holds min* (b5 " {b7}) < min* (b5 " {b8});
:: STIRL2_1:th 37
theorem
for b1, b2 being Element of NAT
for b3 being Function-like quasi_total Relation of b1 + 1,b2 + 1
st b3 is onto(b1 + 1, b2 + 1) &
b3 is "increasing(b1 + 1, b2 + 1) &
b3 " {b3 . b1} = {b1}
holds rng (b3 | b1) c= b2 &
(for b4 being Function-like quasi_total Relation of b1,b2
st b4 = b3 | b1
holds b4 is onto(b1, b2) & b4 is "increasing(b1, b2));
:: STIRL2_1:th 38
theorem
for b1, b2 being Element of NAT
for b3 being Function-like quasi_total Relation of b1 + 1,b2
for b4 being Function-like quasi_total Relation of b1,b2
st b3 is onto(b1 + 1, b2) &
b3 is "increasing(b1 + 1, b2) &
b3 " {b3 . b1} <> {b1} &
b3 | b1 = b4
holds b4 is onto(b1, b2) & b4 is "increasing(b1, b2);
:: STIRL2_1:th 39
theorem
for b1, b2, b3 being Element of NAT
for b4 being Function-like quasi_total Relation of b1,b2
for b5 being Function-like quasi_total Relation of b1 + 1,b2 + b3
st b4 is onto(b1, b2) & b4 is "increasing(b1, b2) & b4 = b5 | b1
for b6, b7 being Element of NAT
st b6 in rng b5 & b7 in rng b5 & b6 < b7
holds min* (b5 " {b6}) < min* (b5 " {b7});
:: STIRL2_1:th 40
theorem
for b1, b2 being Element of NAT
for b3 being Function-like quasi_total Relation of b1,b2
for b4 being Function-like quasi_total Relation of b1 + 1,b2 + 1
st b3 is onto(b1, b2) & b3 is "increasing(b1, b2) & b3 = b4 | b1 & b4 . b1 = b2
holds b4 is onto(b1 + 1, b2 + 1) &
b4 is "increasing(b1 + 1, b2 + 1) &
b4 " {b4 . b1} = {b1};
:: STIRL2_1:th 41
theorem
for b1, b2 being Element of NAT
for b3 being Function-like quasi_total Relation of b1,b2
for b4 being Function-like quasi_total Relation of b1 + 1,b2
st b3 is onto(b1, b2) & b3 is "increasing(b1, b2) & b3 = b4 | b1 & b4 . b1 < b2
holds b4 is onto(b1 + 1, b2) &
b4 is "increasing(b1 + 1, b2) &
b4 " {b4 . b1} <> {b1};
:: STIRL2_1:th 42
theorem
for b1, b2 being Element of NAT holds
Card {b3 where b3 is Function-like quasi_total Relation of b1 + 1,b2 + 1: b3 is onto(b1 + 1, b2 + 1) &
b3 is "increasing(b1 + 1, b2 + 1) &
b3 " {b3 . b1} = {b1}} = Card {b3 where b3 is Function-like quasi_total Relation of b1,b2: b3 is onto(b1, b2) & b3 is "increasing(b1, b2)};
:: STIRL2_1:th 43
theorem
for b1, b2, b3 being Element of NAT
st b3 < b1
holds Card {b4 where b4 is Function-like quasi_total Relation of b2 + 1,b1: b4 is onto(b2 + 1, b1) &
b4 is "increasing(b2 + 1, b1) &
b4 " {b4 . b2} <> {b2} &
b4 . b2 = b3} = Card {b4 where b4 is Function-like quasi_total Relation of b2,b1: b4 is onto(b2, b1) & b4 is "increasing(b2, b1)};
:: STIRL2_1:funcnot 4 => STIRL2_1:func 4
definition
let a1 be non empty set;
let a2 be finite T-Sequence of a1;
let a3 be Function-like quasi_total Relation of [:a1,a1:],a1;
assume (a3 is having_a_unity(a1) or 1 <= len a2);
func A3 "**" A2 -> Element of a1 means
it = the_unity_wrt a3
if a3 is having_a_unity(a1) & len a2 = 0
otherwise ex b1 being Function-like quasi_total Relation of NAT,a1 st
b1 . 0 = a2 . 0 &
(for b2 being Element of NAT
st b2 + 1 < len a2
holds b1 . (b2 + 1) = a3 .(b1 . b2,a2 . (b2 + 1))) &
it = b1 . ((len a2) - 1);
end;
:: STIRL2_1:def 3
theorem
for b1 being non empty set
for b2 being finite T-Sequence of b1
for b3 being Function-like quasi_total Relation of [:b1,b1:],b1
st (b3 is having_a_unity(b1) or 1 <= len b2)
for b4 being Element of b1 holds
(b3 is having_a_unity(b1) & len b2 = 0 implies (b4 = b3 "**" b2
iff
b4 = the_unity_wrt b3)) &
(b3 is having_a_unity(b1) & len b2 = 0 or (b4 = b3 "**" b2
iff
ex b5 being Function-like quasi_total Relation of NAT,b1 st
b5 . 0 = b2 . 0 &
(for b6 being Element of NAT
st b6 + 1 < len b2
holds b5 . (b6 + 1) = b3 .(b5 . b6,b2 . (b6 + 1))) &
b4 = b5 . ((len b2) - 1)));
:: STIRL2_1:th 44
theorem
for b1 being non empty set
for b2 being Function-like quasi_total Relation of [:b1,b1:],b1
for b3 being Element of b1 holds
b2 "**" <%b3%> = b3;
:: STIRL2_1:th 45
theorem
for b1 being non empty set
for b2 being finite T-Sequence of b1
for b3 being Function-like quasi_total Relation of [:b1,b1:],b1
for b4 being Element of b1
st (b3 is not having_a_unity(b1) implies 0 < len b2)
holds b3 "**" (b2 ^ <%b4%>) = b3 .(b3 "**" b2,b4);
:: STIRL2_1:th 46
theorem
for b1 being non empty set
for b2 being finite T-Sequence of b1
st b2 <> <%> b1
holds ex b3 being finite T-Sequence of b1 st
ex b4 being Element of b1 st
b2 = b3 ^ <%b4%>;
:: STIRL2_1:sch 5
scheme STIRL2_1:sch 5
{F1 -> non empty set}:
for b1 being finite T-Sequence of F1() holds
P1[b1]
provided
P1[<%> F1()]
and
for b1 being finite T-Sequence of F1()
for b2 being Element of F1()
st P1[b1]
holds P1[b1 ^ <%b2%>];
:: STIRL2_1:th 47
theorem
for b1 being non empty set
for b2, b3 being finite T-Sequence of b1
for b4 being Function-like quasi_total Relation of [:b1,b1:],b1
st b4 is associative(b1) &
(b4 is having_a_unity(b1) or 1 <= len b2 & 1 <= len b3)
holds b4 "**" (b2 ^ b3) = b4 .(b4 "**" b2,b4 "**" b3);
:: STIRL2_1:funcnot 5 => STIRL2_1:func 5
definition
let a1 be non empty set;
let a2, a3 be Element of a1;
redefine func <%a2, a3%> -> finite T-Sequence of a1;
end;
:: STIRL2_1:funcnot 6 => STIRL2_1:func 6
definition
let a1 be non empty set;
let a2, a3, a4 be Element of a1;
redefine func <%a2, a3, a4%> -> finite T-Sequence of a1;
end;
:: STIRL2_1:th 48
theorem
for b1 being non empty set
for b2 being Function-like quasi_total Relation of [:b1,b1:],b1
for b3, b4 being Element of b1 holds
b2 "**" <%b3,b4%> = b2 .(b3,b4);
:: STIRL2_1:th 49
theorem
for b1 being non empty set
for b2 being Function-like quasi_total Relation of [:b1,b1:],b1
for b3, b4, b5 being Element of b1 holds
b2 "**" <%b3,b4,b5%> = b2 .(b2 .(b3,b4),b5);
:: STIRL2_1:funcnot 7 => STIRL2_1:func 7
definition
let a1 be finite T-Sequence of NAT;
func Sum A1 -> Element of NAT equals
addnat "**" a1;
end;
:: STIRL2_1:def 4
theorem
for b1 being finite T-Sequence of NAT holds
Sum b1 = addnat "**" b1;
:: STIRL2_1:th 50
theorem
for b1 being Element of NAT
for b2 being finite T-Sequence of NAT
st for b3 being Element of NAT
st b3 in dom b2
holds b2 . b3 <= b1
holds Sum b2 <= (len b2) * b1;
:: STIRL2_1:th 51
theorem
for b1 being Element of NAT
for b2 being finite T-Sequence of NAT
st for b3 being Element of NAT
st b3 in dom b2
holds b1 <= b2 . b3
holds (len b2) * b1 <= Sum b2;
:: STIRL2_1:th 52
theorem
for b1 being Element of NAT
for b2 being finite T-Sequence of NAT
st 0 < len b2 &
(ex b3 being set st
b3 in dom b2 & b2 . b3 = b1)
holds b1 <= Sum b2;
:: STIRL2_1:th 53
theorem
for b1 being finite T-Sequence of NAT holds
Sum b1 = 0
iff
(len b1 = 0 or for b2 being Element of NAT
st b2 in dom b1
holds b1 . b2 = 0);
:: STIRL2_1:th 54
theorem
for b1 being Relation-like Function-like set
for b2 being Element of NAT holds
(union proj2 (b1 | b2)) \/ (b1 . b2) = union proj2 (b1 | (b2 + 1));
:: STIRL2_1:sch 6
scheme STIRL2_1:sch 6
{F1 -> non empty set,
F2 -> Element of NAT}:
ex b1 being finite T-Sequence of F1() st
dom b1 = F2() &
(for b2 being Element of NAT
st b2 in F2()
holds P1[b2, b1 . b2])
provided
for b1 being Element of NAT
st b1 in F2()
holds ex b2 being Element of F1() st
P1[b1, b2];
:: STIRL2_1:sch 7
scheme STIRL2_1:sch 7
{F1 -> non empty set,
F2 -> finite T-Sequence of F1()}:
ex b1 being finite T-Sequence of NAT st
dom b1 = dom F2() &
(for b2 being Element of NAT
st b2 in dom b1
holds b1 . b2 = Card (F2() . b2)) &
Card union proj2 F2() = Sum b1
provided
for b1 being Element of NAT
st b1 in dom F2()
holds F2() . b1 is finite
and
for b1, b2 being Element of NAT
st b1 in dom F2() & b2 in dom F2() & b1 <> b2
holds F2() . b1 misses F2() . b2;
:: STIRL2_1:sch 8
scheme STIRL2_1:sch 8
{F1 -> finite set,
F2 -> finite set,
F3 -> set,
F4 -> Function-like quasi_total Relation of card F2(),F2()}:
ex b1 being finite T-Sequence of NAT st
dom b1 = card F2() &
Card {b2 where b2 is Function-like quasi_total Relation of F1(),F2(): P1[b2]} = Sum b1 &
(for b2 being Element of NAT
st b2 in dom b1
holds b1 . b2 = Card {b3 where b3 is Function-like quasi_total Relation of F1(),F2(): P1[b3] & b3 . F3() = F4() . b2})
provided
F4() is onto(card F2(), F2()) & F4() is one-to-one
and
F2() is not empty
and
F3() in F1();
:: STIRL2_1:th 55
theorem
for b1, b2 being natural set holds
b2 * (b1 block b2) = Card {b3 where b3 is Function-like quasi_total Relation of b1 + 1,b2: b3 is onto(b1 + 1, b2) &
b3 is "increasing(b1 + 1, b2) &
b3 " {b3 . b1} <> {b1}};
:: STIRL2_1:th 56
theorem
for b1, b2 being natural set holds
(b1 + 1) block (b2 + 1) = ((b2 + 1) * (b1 block (b2 + 1))) + (b1 block b2);
:: STIRL2_1:th 57
theorem
for b1 being natural set
st 1 <= b1
holds b1 block 2 = (1 / 2) * ((2 |^ b1) - 2);
:: STIRL2_1:th 58
theorem
for b1 being Element of NAT
st 2 <= b1
holds b1 block 3 = (1 / 6) * (((3 |^ b1) - (3 * (2 |^ b1))) + 3);
:: STIRL2_1:th 59
theorem
for b1 being Element of NAT
st 3 <= b1
holds b1 block 4 = (1 / 24) * ((((4 |^ b1) - (4 * (3 |^ b1))) + (6 * (2 |^ b1))) - 4);
:: STIRL2_1:th 60
theorem
3 ! = 6 & 4 ! = 24;
:: STIRL2_1:th 61
theorem
for b1 being Element of NAT holds
b1 choose 1 = b1 &
b1 choose 2 = (b1 * (b1 - 1)) / 2 &
b1 choose 3 = ((b1 * (b1 - 1)) * (b1 - 2)) / 6 &
b1 choose 4 = (((b1 * (b1 - 1)) * (b1 - 2)) * (b1 - 3)) / 24;
:: STIRL2_1:th 62
theorem
for b1 being Element of NAT holds
(b1 + 1) block b1 = (b1 + 1) choose 2;
:: STIRL2_1:th 63
theorem
for b1 being Element of NAT holds
(b1 + 2) block b1 = (3 * ((b1 + 2) choose 4)) + ((b1 + 2) choose 3);
:: STIRL2_1:th 64
theorem
for b1 being Relation-like Function-like set
for b2 being set holds
proj2 (b1 | ((proj1 b1) \ (b1 " {b2}))) = (proj2 b1) \ {b2} &
(for b3 being set
st b3 <> b2
holds (b1 | ((proj1 b1) \ (b1 " {b2}))) " {b3} = b1 " {b3});
:: STIRL2_1:th 65
theorem
for b1 being Element of NAT
for b2, b3 being set
st Card b2 = b1 + 1 & b3 in b2
holds Card (b2 \ {b3}) = b1;
:: STIRL2_1:sch 9
scheme STIRL2_1:sch 9
for b1 being Relation-like Function-like set
st proj2 b1 is finite
holds P1[b1]
provided
P1[{}]
and
for b1 being Relation-like Function-like set
st for b2 being set
st b2 in proj2 b1 & P2[b2, b1]
holds P1[b1 | ((proj1 b1) \ (b1 " {b2}))]
holds P1[b1];
:: STIRL2_1:th 66
theorem
for b1 being Element of bool NAT
st b1 is finite
holds ex b2 being Element of NAT st
for b3 being Element of NAT
st b3 in b1
holds b3 <= b2;
:: STIRL2_1:th 67
theorem
for b1, b2, b3, b4 being set
st (b2 is empty implies b1 is empty) & not b3 in b1
for b5 being Function-like quasi_total Relation of b1,b2 holds
ex b6 being Function-like quasi_total Relation of b1 \/ {b3},b2 \/ {b4} st
b6 | b1 = b5 & b6 . b3 = b4;
:: STIRL2_1:th 68
theorem
for b1, b2, b3, b4 being set
st (b2 is empty implies b1 is empty)
for b5 being Function-like quasi_total Relation of b1,b2
for b6 being Function-like quasi_total Relation of b1 \/ {b3},b2 \/ {b4}
st b6 | b1 = b5 & b6 . b3 = b4
holds (b5 is onto(b1, b2) implies b6 is onto(b1 \/ {b3}, b2 \/ {b4})) &
(not b4 in b2 & b5 is one-to-one implies b6 is one-to-one);
:: STIRL2_1:th 69
theorem
for b1 being finite Element of bool NAT holds
ex b2 being Function-like quasi_total Relation of b1,card b1 st
b2 is bijective(b1, card b1) &
(for b3, b4 being Element of NAT
st b3 in dom b2 & b4 in dom b2 & b3 < b4
holds b2 . b3 < b2 . b4);
:: STIRL2_1:th 70
theorem
for b1, b2 being finite set
for b3 being Function-like quasi_total Relation of b1,b2
st card b1 = card b2
holds b3 is onto(b1, b2)
iff
b3 is one-to-one;
:: STIRL2_1:th 71
theorem
for b1, b2 being Relation-like Function-like set
for b3 being set
st b3 in proj2 (b1 * b2) & b2 is one-to-one
holds ex b4 being set st
b4 in proj1 b2 &
b4 in proj2 b1 &
b2 " {b3} = {b4} &
b1 " {b4} = (b1 * b2) " {b3};
:: STIRL2_1:attrnot 2 => STIRL2_1:attr 2
definition
let a1, a2 be Element of bool NAT;
let a3 be Function-like quasi_total Relation of a1,a2;
attr a3 is "increasing means
for b1, b2 being Element of NAT
st b1 in rng a3 & b2 in rng a3 & b1 < b2
holds min* (a3 " {b1}) < min* (a3 " {b2});
end;
:: STIRL2_1:dfs 5
definiens
let a1, a2 be Element of bool NAT;
let a3 be Function-like quasi_total Relation of a1,a2;
To prove
a3 is "increasing
it is sufficient to prove
thus for b1, b2 being Element of NAT
st b1 in rng a3 & b2 in rng a3 & b1 < b2
holds min* (a3 " {b1}) < min* (a3 " {b2});
:: STIRL2_1:def 5
theorem
for b1, b2 being Element of bool NAT
for b3 being Function-like quasi_total Relation of b1,b2 holds
b3 is "increasing(b1, b2)
iff
for b4, b5 being Element of NAT
st b4 in rng b3 & b5 in rng b3 & b4 < b5
holds min* (b3 " {b4}) < min* (b3 " {b5});
:: STIRL2_1:th 72
theorem
for b1, b2 being Element of bool NAT
for b3 being Function-like quasi_total Relation of b1,b2
st b3 is "increasing(b1, b2)
holds min* rng b3 = b3 . min* dom b3;
:: STIRL2_1:th 73
theorem
for b1, b2 being Element of bool NAT
for b3 being Function-like quasi_total Relation of b1,b2
st rng b3 is finite
holds ex b4 being Function-like quasi_total Relation of b1,b2 st
ex b5 being Function-like quasi_total bijective Relation of rng b3,rng b3 st
b3 = b5 * b4 & rng b3 = rng b4 & b4 is "increasing(b1, b2);
:: STIRL2_1:th 74
theorem
for b1, b2, b3 being Element of bool NAT
for b4 being Function-like quasi_total Relation of b1,b2
st rng b4 is finite
for b5, b6 being Function-like quasi_total Relation of b1,b3
for b7, b8 being Relation-like Function-like set
st b7 is one-to-one & b8 is one-to-one & rng b5 = rng b6 & rng b5 = proj1 b7 & proj1 b7 = proj1 b8 & b4 = b5 * b7 & b4 = b6 * b8 & b5 is "increasing(b1, b3) & b6 is "increasing(b1, b3)
holds b7 = b8 & b5 = b6;
:: STIRL2_1:th 75
theorem
for b1, b2 being Element of bool NAT
for b3 being Function-like quasi_total Relation of b1,b2
st rng b3 is finite
for b4, b5 being Function-like quasi_total Relation of b1,b2
for b6, b7 being Function-like quasi_total bijective Relation of rng b3,rng b3
st b3 = b6 * b4 & b3 = b7 * b5 & rng b3 = rng b4 & rng b3 = rng b5 & b4 is "increasing(b1, b2) & b5 is "increasing(b1, b2)
holds b6 = b7 & b4 = b5;