theorem writeArrow (A B: set) (G: wff) (a b f g: nat):
$ G -> f e. Arrow A B $ >
$ G -> a e. A $ >
$ G -> b e. B $ >
$ G -> write f a b == g $ >
$ G -> g e. Arrow A B $;
Step | Hyp | Ref | Expression |
1 |
|
elArrow |
g e. Arrow A B <-> func g A B |
2 |
|
hyp h |
G -> write f a b == g |
3 |
2 |
isfeqd |
G -> (isfun (write f a b) <-> isfun g) |
4 |
|
writeisf |
isfun f -> isfun (write f a b) |
5 |
|
Arrowisf |
f e. Arrow A B -> isfun f |
6 |
|
hyp hf |
G -> f e. Arrow A B |
7 |
5, 6 |
syl |
G -> isfun f |
8 |
4, 7 |
syl |
G -> isfun (write f a b) |
9 |
3, 8 |
mpbid |
G -> isfun g |
10 |
2 |
dmeqd |
G -> Dom (write f a b) == Dom g |
11 |
|
dmwrite |
Dom (write f a b) == Dom f u. sn a |
12 |
|
Arrowdm |
f e. Arrow A B -> Dom f == A |
13 |
12, 6 |
syl |
G -> Dom f == A |
14 |
13 |
uneq1d |
G -> Dom f u. sn a == A u. sn a |
15 |
|
equn2 |
sn a C_ A <-> A u. sn a == A |
16 |
|
snss |
sn a C_ A <-> a e. A |
17 |
|
hyp ha |
G -> a e. A |
18 |
16, 17 |
sylibr |
G -> sn a C_ A |
19 |
15, 18 |
sylib |
G -> A u. sn a == A |
20 |
14, 19 |
eqstrd |
G -> Dom f u. sn a == A |
21 |
11, 20 |
syl5eqs |
G -> Dom (write f a b) == A |
22 |
10, 21 |
eqstr3d |
G -> Dom g == A |
23 |
9, 22 |
iand |
G -> isfun g /\ Dom g == A |
24 |
2 |
rneqd |
G -> Ran (write f a b) == Ran g |
25 |
24 |
sseq1d |
G -> (Ran (write f a b) C_ B <-> Ran g C_ B) |
26 |
|
sstr |
Ran (write f a b) C_ Ran f u. sn b -> Ran f u. sn b C_ B -> Ran (write f a b) C_ B |
27 |
|
rnwrite |
Ran (write f a b) C_ Ran f u. sn b |
28 |
26, 27 |
ax_mp |
Ran f u. sn b C_ B -> Ran (write f a b) C_ B |
29 |
|
unss |
Ran f u. sn b C_ B <-> Ran f C_ B /\ sn b C_ B |
30 |
|
Arrowrn |
f e. Arrow A B -> Ran f C_ B |
31 |
30, 6 |
syl |
G -> Ran f C_ B |
32 |
|
snss |
sn b C_ B <-> b e. B |
33 |
|
hyp hb |
G -> b e. B |
34 |
32, 33 |
sylibr |
G -> sn b C_ B |
35 |
31, 34 |
iand |
G -> Ran f C_ B /\ sn b C_ B |
36 |
29, 35 |
sylibr |
G -> Ran f u. sn b C_ B |
37 |
28, 36 |
syl |
G -> Ran (write f a b) C_ B |
38 |
25, 37 |
mpbid |
G -> Ran g C_ B |
39 |
23, 38 |
iand |
G -> isfun g /\ Dom g == A /\ Ran g C_ B |
40 |
39 |
conv func |
G -> func g A B |
41 |
1, 40 |
sylibr |
G -> g e. Arrow A B |
Axiom use
axs_prop_calc
(ax_1,
ax_2,
ax_3,
ax_mp,
itru),
axs_pred_calc
(ax_gen,
ax_4,
ax_5,
ax_6,
ax_7,
ax_10,
ax_11,
ax_12),
axs_set
(elab,
ax_8),
axs_the
(theid,
the0),
axs_peano
(peano1,
peano2,
peano5,
addeq,
muleq,
add0,
addS,
mul0,
mulS)