HSE Home Hilbert Space Explorer < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  HSE Home  >  Th. List  >  pjspansn Structured version   Visualization version   GIF version

Theorem pjspansn 31505
Description: A projection on the span of a singleton. (The proof ws shortened by Mario Carneiro, 15-Dec-2013.) (Contributed by NM, 28-May-2006.) (Revised by Mario Carneiro, 15-Dec-2013.) (New usage is discouraged.)
Assertion
Ref Expression
pjspansn ((𝐴 ∈ ℋ ∧ 𝐵 ∈ ℋ ∧ 𝐴 ≠ 0) → ((proj‘(span‘{𝐴}))‘𝐵) = (((𝐵 ·ih 𝐴) / ((norm𝐴)↑2)) · 𝐴))

Proof of Theorem pjspansn
Dummy variable 𝑦 is distinct from all other variables.
StepHypRef Expression
1 spansnch 31488 . . . 4 (𝐴 ∈ ℋ → (span‘{𝐴}) ∈ C )
213ad2ant1 1130 . . 3 ((𝐴 ∈ ℋ ∧ 𝐵 ∈ ℋ ∧ 𝐴 ≠ 0) → (span‘{𝐴}) ∈ C )
3 simp2 1134 . . 3 ((𝐴 ∈ ℋ ∧ 𝐵 ∈ ℋ ∧ 𝐴 ≠ 0) → 𝐵 ∈ ℋ)
4 eqid 2726 . . . . 5 ((proj‘(span‘{𝐴}))‘𝐵) = ((proj‘(span‘{𝐴}))‘𝐵)
5 pjeq 31327 . . . . 5 (((span‘{𝐴}) ∈ C𝐵 ∈ ℋ) → (((proj‘(span‘{𝐴}))‘𝐵) = ((proj‘(span‘{𝐴}))‘𝐵) ↔ (((proj‘(span‘{𝐴}))‘𝐵) ∈ (span‘{𝐴}) ∧ ∃𝑦 ∈ (⊥‘(span‘{𝐴}))𝐵 = (((proj‘(span‘{𝐴}))‘𝐵) + 𝑦))))
64, 5mpbii 232 . . . 4 (((span‘{𝐴}) ∈ C𝐵 ∈ ℋ) → (((proj‘(span‘{𝐴}))‘𝐵) ∈ (span‘{𝐴}) ∧ ∃𝑦 ∈ (⊥‘(span‘{𝐴}))𝐵 = (((proj‘(span‘{𝐴}))‘𝐵) + 𝑦)))
76simprd 494 . . 3 (((span‘{𝐴}) ∈ C𝐵 ∈ ℋ) → ∃𝑦 ∈ (⊥‘(span‘{𝐴}))𝐵 = (((proj‘(span‘{𝐴}))‘𝐵) + 𝑦))
82, 3, 7syl2anc 582 . 2 ((𝐴 ∈ ℋ ∧ 𝐵 ∈ ℋ ∧ 𝐴 ≠ 0) → ∃𝑦 ∈ (⊥‘(span‘{𝐴}))𝐵 = (((proj‘(span‘{𝐴}))‘𝐵) + 𝑦))
9 oveq1 7421 . . . . . . 7 (𝐵 = (((proj‘(span‘{𝐴}))‘𝐵) + 𝑦) → (𝐵 ·ih 𝐴) = ((((proj‘(span‘{𝐴}))‘𝐵) + 𝑦) ·ih 𝐴))
109ad2antll 727 . . . . . 6 (((𝐴 ∈ ℋ ∧ 𝐵 ∈ ℋ ∧ 𝐴 ≠ 0) ∧ (𝑦 ∈ (⊥‘(span‘{𝐴})) ∧ 𝐵 = (((proj‘(span‘{𝐴}))‘𝐵) + 𝑦))) → (𝐵 ·ih 𝐴) = ((((proj‘(span‘{𝐴}))‘𝐵) + 𝑦) ·ih 𝐴))
11 pjhcl 31329 . . . . . . . . . . 11 (((span‘{𝐴}) ∈ C𝐵 ∈ ℋ) → ((proj‘(span‘{𝐴}))‘𝐵) ∈ ℋ)
122, 3, 11syl2anc 582 . . . . . . . . . 10 ((𝐴 ∈ ℋ ∧ 𝐵 ∈ ℋ ∧ 𝐴 ≠ 0) → ((proj‘(span‘{𝐴}))‘𝐵) ∈ ℋ)
1312adantr 479 . . . . . . . . 9 (((𝐴 ∈ ℋ ∧ 𝐵 ∈ ℋ ∧ 𝐴 ≠ 0) ∧ 𝑦 ∈ (⊥‘(span‘{𝐴}))) → ((proj‘(span‘{𝐴}))‘𝐵) ∈ ℋ)
14 choccl 31234 . . . . . . . . . . . 12 ((span‘{𝐴}) ∈ C → (⊥‘(span‘{𝐴})) ∈ C )
151, 14syl 17 . . . . . . . . . . 11 (𝐴 ∈ ℋ → (⊥‘(span‘{𝐴})) ∈ C )
16153ad2ant1 1130 . . . . . . . . . 10 ((𝐴 ∈ ℋ ∧ 𝐵 ∈ ℋ ∧ 𝐴 ≠ 0) → (⊥‘(span‘{𝐴})) ∈ C )
17 chel 31158 . . . . . . . . . 10 (((⊥‘(span‘{𝐴})) ∈ C𝑦 ∈ (⊥‘(span‘{𝐴}))) → 𝑦 ∈ ℋ)
1816, 17sylan 578 . . . . . . . . 9 (((𝐴 ∈ ℋ ∧ 𝐵 ∈ ℋ ∧ 𝐴 ≠ 0) ∧ 𝑦 ∈ (⊥‘(span‘{𝐴}))) → 𝑦 ∈ ℋ)
19 simpl1 1188 . . . . . . . . 9 (((𝐴 ∈ ℋ ∧ 𝐵 ∈ ℋ ∧ 𝐴 ≠ 0) ∧ 𝑦 ∈ (⊥‘(span‘{𝐴}))) → 𝐴 ∈ ℋ)
20 ax-his2 31011 . . . . . . . . 9 ((((proj‘(span‘{𝐴}))‘𝐵) ∈ ℋ ∧ 𝑦 ∈ ℋ ∧ 𝐴 ∈ ℋ) → ((((proj‘(span‘{𝐴}))‘𝐵) + 𝑦) ·ih 𝐴) = ((((proj‘(span‘{𝐴}))‘𝐵) ·ih 𝐴) + (𝑦 ·ih 𝐴)))
2113, 18, 19, 20syl3anc 1368 . . . . . . . 8 (((𝐴 ∈ ℋ ∧ 𝐵 ∈ ℋ ∧ 𝐴 ≠ 0) ∧ 𝑦 ∈ (⊥‘(span‘{𝐴}))) → ((((proj‘(span‘{𝐴}))‘𝐵) + 𝑦) ·ih 𝐴) = ((((proj‘(span‘{𝐴}))‘𝐵) ·ih 𝐴) + (𝑦 ·ih 𝐴)))
22 spansnsh 31489 . . . . . . . . . . . . 13 (𝐴 ∈ ℋ → (span‘{𝐴}) ∈ S )
2322adantr 479 . . . . . . . . . . . 12 ((𝐴 ∈ ℋ ∧ 𝑦 ∈ (⊥‘(span‘{𝐴}))) → (span‘{𝐴}) ∈ S )
24 spansnid 31491 . . . . . . . . . . . . 13 (𝐴 ∈ ℋ → 𝐴 ∈ (span‘{𝐴}))
2524adantr 479 . . . . . . . . . . . 12 ((𝐴 ∈ ℋ ∧ 𝑦 ∈ (⊥‘(span‘{𝐴}))) → 𝐴 ∈ (span‘{𝐴}))
26 simpr 483 . . . . . . . . . . . 12 ((𝐴 ∈ ℋ ∧ 𝑦 ∈ (⊥‘(span‘{𝐴}))) → 𝑦 ∈ (⊥‘(span‘{𝐴})))
27 shocorth 31220 . . . . . . . . . . . . 13 ((span‘{𝐴}) ∈ S → ((𝐴 ∈ (span‘{𝐴}) ∧ 𝑦 ∈ (⊥‘(span‘{𝐴}))) → (𝐴 ·ih 𝑦) = 0))
28273impib 1113 . . . . . . . . . . . 12 (((span‘{𝐴}) ∈ S𝐴 ∈ (span‘{𝐴}) ∧ 𝑦 ∈ (⊥‘(span‘{𝐴}))) → (𝐴 ·ih 𝑦) = 0)
2923, 25, 26, 28syl3anc 1368 . . . . . . . . . . 11 ((𝐴 ∈ ℋ ∧ 𝑦 ∈ (⊥‘(span‘{𝐴}))) → (𝐴 ·ih 𝑦) = 0)
3015, 17sylan 578 . . . . . . . . . . . 12 ((𝐴 ∈ ℋ ∧ 𝑦 ∈ (⊥‘(span‘{𝐴}))) → 𝑦 ∈ ℋ)
31 orthcom 31036 . . . . . . . . . . . 12 ((𝐴 ∈ ℋ ∧ 𝑦 ∈ ℋ) → ((𝐴 ·ih 𝑦) = 0 ↔ (𝑦 ·ih 𝐴) = 0))
3230, 31syldan 589 . . . . . . . . . . 11 ((𝐴 ∈ ℋ ∧ 𝑦 ∈ (⊥‘(span‘{𝐴}))) → ((𝐴 ·ih 𝑦) = 0 ↔ (𝑦 ·ih 𝐴) = 0))
3329, 32mpbid 231 . . . . . . . . . 10 ((𝐴 ∈ ℋ ∧ 𝑦 ∈ (⊥‘(span‘{𝐴}))) → (𝑦 ·ih 𝐴) = 0)
34333ad2antl1 1182 . . . . . . . . 9 (((𝐴 ∈ ℋ ∧ 𝐵 ∈ ℋ ∧ 𝐴 ≠ 0) ∧ 𝑦 ∈ (⊥‘(span‘{𝐴}))) → (𝑦 ·ih 𝐴) = 0)
3534oveq2d 7430 . . . . . . . 8 (((𝐴 ∈ ℋ ∧ 𝐵 ∈ ℋ ∧ 𝐴 ≠ 0) ∧ 𝑦 ∈ (⊥‘(span‘{𝐴}))) → ((((proj‘(span‘{𝐴}))‘𝐵) ·ih 𝐴) + (𝑦 ·ih 𝐴)) = ((((proj‘(span‘{𝐴}))‘𝐵) ·ih 𝐴) + 0))
36 hicl 31008 . . . . . . . . . 10 ((((proj‘(span‘{𝐴}))‘𝐵) ∈ ℋ ∧ 𝐴 ∈ ℋ) → (((proj‘(span‘{𝐴}))‘𝐵) ·ih 𝐴) ∈ ℂ)
3713, 19, 36syl2anc 582 . . . . . . . . 9 (((𝐴 ∈ ℋ ∧ 𝐵 ∈ ℋ ∧ 𝐴 ≠ 0) ∧ 𝑦 ∈ (⊥‘(span‘{𝐴}))) → (((proj‘(span‘{𝐴}))‘𝐵) ·ih 𝐴) ∈ ℂ)
3837addridd 11453 . . . . . . . 8 (((𝐴 ∈ ℋ ∧ 𝐵 ∈ ℋ ∧ 𝐴 ≠ 0) ∧ 𝑦 ∈ (⊥‘(span‘{𝐴}))) → ((((proj‘(span‘{𝐴}))‘𝐵) ·ih 𝐴) + 0) = (((proj‘(span‘{𝐴}))‘𝐵) ·ih 𝐴))
3921, 35, 383eqtrd 2770 . . . . . . 7 (((𝐴 ∈ ℋ ∧ 𝐵 ∈ ℋ ∧ 𝐴 ≠ 0) ∧ 𝑦 ∈ (⊥‘(span‘{𝐴}))) → ((((proj‘(span‘{𝐴}))‘𝐵) + 𝑦) ·ih 𝐴) = (((proj‘(span‘{𝐴}))‘𝐵) ·ih 𝐴))
4039adantrr 715 . . . . . 6 (((𝐴 ∈ ℋ ∧ 𝐵 ∈ ℋ ∧ 𝐴 ≠ 0) ∧ (𝑦 ∈ (⊥‘(span‘{𝐴})) ∧ 𝐵 = (((proj‘(span‘{𝐴}))‘𝐵) + 𝑦))) → ((((proj‘(span‘{𝐴}))‘𝐵) + 𝑦) ·ih 𝐴) = (((proj‘(span‘{𝐴}))‘𝐵) ·ih 𝐴))
4110, 40eqtrd 2766 . . . . 5 (((𝐴 ∈ ℋ ∧ 𝐵 ∈ ℋ ∧ 𝐴 ≠ 0) ∧ (𝑦 ∈ (⊥‘(span‘{𝐴})) ∧ 𝐵 = (((proj‘(span‘{𝐴}))‘𝐵) + 𝑦))) → (𝐵 ·ih 𝐴) = (((proj‘(span‘{𝐴}))‘𝐵) ·ih 𝐴))
4241oveq1d 7429 . . . 4 (((𝐴 ∈ ℋ ∧ 𝐵 ∈ ℋ ∧ 𝐴 ≠ 0) ∧ (𝑦 ∈ (⊥‘(span‘{𝐴})) ∧ 𝐵 = (((proj‘(span‘{𝐴}))‘𝐵) + 𝑦))) → ((𝐵 ·ih 𝐴) / ((norm𝐴)↑2)) = ((((proj‘(span‘{𝐴}))‘𝐵) ·ih 𝐴) / ((norm𝐴)↑2)))
4342oveq1d 7429 . . 3 (((𝐴 ∈ ℋ ∧ 𝐵 ∈ ℋ ∧ 𝐴 ≠ 0) ∧ (𝑦 ∈ (⊥‘(span‘{𝐴})) ∧ 𝐵 = (((proj‘(span‘{𝐴}))‘𝐵) + 𝑦))) → (((𝐵 ·ih 𝐴) / ((norm𝐴)↑2)) · 𝐴) = (((((proj‘(span‘{𝐴}))‘𝐵) ·ih 𝐴) / ((norm𝐴)↑2)) · 𝐴))
44 simpl1 1188 . . . 4 (((𝐴 ∈ ℋ ∧ 𝐵 ∈ ℋ ∧ 𝐴 ≠ 0) ∧ (𝑦 ∈ (⊥‘(span‘{𝐴})) ∧ 𝐵 = (((proj‘(span‘{𝐴}))‘𝐵) + 𝑦))) → 𝐴 ∈ ℋ)
45 simpl3 1190 . . . 4 (((𝐴 ∈ ℋ ∧ 𝐵 ∈ ℋ ∧ 𝐴 ≠ 0) ∧ (𝑦 ∈ (⊥‘(span‘{𝐴})) ∧ 𝐵 = (((proj‘(span‘{𝐴}))‘𝐵) + 𝑦))) → 𝐴 ≠ 0)
46 axpjcl 31328 . . . . . 6 (((span‘{𝐴}) ∈ C𝐵 ∈ ℋ) → ((proj‘(span‘{𝐴}))‘𝐵) ∈ (span‘{𝐴}))
472, 3, 46syl2anc 582 . . . . 5 ((𝐴 ∈ ℋ ∧ 𝐵 ∈ ℋ ∧ 𝐴 ≠ 0) → ((proj‘(span‘{𝐴}))‘𝐵) ∈ (span‘{𝐴}))
4847adantr 479 . . . 4 (((𝐴 ∈ ℋ ∧ 𝐵 ∈ ℋ ∧ 𝐴 ≠ 0) ∧ (𝑦 ∈ (⊥‘(span‘{𝐴})) ∧ 𝐵 = (((proj‘(span‘{𝐴}))‘𝐵) + 𝑦))) → ((proj‘(span‘{𝐴}))‘𝐵) ∈ (span‘{𝐴}))
49 normcan 31504 . . . 4 ((𝐴 ∈ ℋ ∧ 𝐴 ≠ 0 ∧ ((proj‘(span‘{𝐴}))‘𝐵) ∈ (span‘{𝐴})) → (((((proj‘(span‘{𝐴}))‘𝐵) ·ih 𝐴) / ((norm𝐴)↑2)) · 𝐴) = ((proj‘(span‘{𝐴}))‘𝐵))
5044, 45, 48, 49syl3anc 1368 . . 3 (((𝐴 ∈ ℋ ∧ 𝐵 ∈ ℋ ∧ 𝐴 ≠ 0) ∧ (𝑦 ∈ (⊥‘(span‘{𝐴})) ∧ 𝐵 = (((proj‘(span‘{𝐴}))‘𝐵) + 𝑦))) → (((((proj‘(span‘{𝐴}))‘𝐵) ·ih 𝐴) / ((norm𝐴)↑2)) · 𝐴) = ((proj‘(span‘{𝐴}))‘𝐵))
5143, 50eqtr2d 2767 . 2 (((𝐴 ∈ ℋ ∧ 𝐵 ∈ ℋ ∧ 𝐴 ≠ 0) ∧ (𝑦 ∈ (⊥‘(span‘{𝐴})) ∧ 𝐵 = (((proj‘(span‘{𝐴}))‘𝐵) + 𝑦))) → ((proj‘(span‘{𝐴}))‘𝐵) = (((𝐵 ·ih 𝐴) / ((norm𝐴)↑2)) · 𝐴))
528, 51rexlimddv 3151 1 ((𝐴 ∈ ℋ ∧ 𝐵 ∈ ℋ ∧ 𝐴 ≠ 0) → ((proj‘(span‘{𝐴}))‘𝐵) = (((𝐵 ·ih 𝐴) / ((norm𝐴)↑2)) · 𝐴))
Colors of variables: wff setvar class
Syntax hints:  wi 4  wb 205  wa 394  w3a 1084   = wceq 1534  wcel 2099  wne 2930  wrex 3060  {csn 4624  cfv 6544  (class class class)co 7414  cc 11145  0cc0 11147   + caddc 11150   / cdiv 11910  2c2 12311  cexp 14073  chba 30847   + cva 30848   · csm 30849   ·ih csp 30850  normcno 30851  0c0v 30852   S csh 30856   C cch 30857  cort 30858  spancspn 30860  projcpjh 30865
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1790  ax-4 1804  ax-5 1906  ax-6 1964  ax-7 2004  ax-8 2101  ax-9 2109  ax-10 2130  ax-11 2147  ax-12 2167  ax-ext 2697  ax-rep 5281  ax-sep 5295  ax-nul 5302  ax-pow 5360  ax-pr 5424  ax-un 7736  ax-inf2 9675  ax-cc 10467  ax-cnex 11203  ax-resscn 11204  ax-1cn 11205  ax-icn 11206  ax-addcl 11207  ax-addrcl 11208  ax-mulcl 11209  ax-mulrcl 11210  ax-mulcom 11211  ax-addass 11212  ax-mulass 11213  ax-distr 11214  ax-i2m1 11215  ax-1ne0 11216  ax-1rid 11217  ax-rnegex 11218  ax-rrecex 11219  ax-cnre 11220  ax-pre-lttri 11221  ax-pre-lttrn 11222  ax-pre-ltadd 11223  ax-pre-mulgt0 11224  ax-pre-sup 11225  ax-addf 11226  ax-mulf 11227  ax-hilex 30927  ax-hfvadd 30928  ax-hvcom 30929  ax-hvass 30930  ax-hv0cl 30931  ax-hvaddid 30932  ax-hfvmul 30933  ax-hvmulid 30934  ax-hvmulass 30935  ax-hvdistr1 30936  ax-hvdistr2 30937  ax-hvmul0 30938  ax-hfi 31007  ax-his1 31010  ax-his2 31011  ax-his3 31012  ax-his4 31013  ax-hcompl 31130
This theorem depends on definitions:  df-bi 206  df-an 395  df-or 846  df-3or 1085  df-3an 1086  df-tru 1537  df-fal 1547  df-ex 1775  df-nf 1779  df-sb 2061  df-mo 2529  df-eu 2558  df-clab 2704  df-cleq 2718  df-clel 2803  df-nfc 2878  df-ne 2931  df-nel 3037  df-ral 3052  df-rex 3061  df-rmo 3365  df-reu 3366  df-rab 3421  df-v 3465  df-sbc 3777  df-csb 3893  df-dif 3950  df-un 3952  df-in 3954  df-ss 3964  df-pss 3967  df-nul 4324  df-if 4525  df-pw 4600  df-sn 4625  df-pr 4627  df-tp 4629  df-op 4631  df-uni 4907  df-int 4948  df-iun 4996  df-iin 4997  df-br 5145  df-opab 5207  df-mpt 5228  df-tr 5262  df-id 5571  df-eprel 5577  df-po 5585  df-so 5586  df-fr 5628  df-se 5629  df-we 5630  df-xp 5679  df-rel 5680  df-cnv 5681  df-co 5682  df-dm 5683  df-rn 5684  df-res 5685  df-ima 5686  df-pred 6303  df-ord 6369  df-on 6370  df-lim 6371  df-suc 6372  df-iota 6496  df-fun 6546  df-fn 6547  df-f 6548  df-f1 6549  df-fo 6550  df-f1o 6551  df-fv 6552  df-isom 6553  df-riota 7370  df-ov 7417  df-oprab 7418  df-mpo 7419  df-of 7680  df-om 7867  df-1st 7993  df-2nd 7994  df-supp 8165  df-frecs 8286  df-wrecs 8317  df-recs 8391  df-rdg 8430  df-1o 8486  df-2o 8487  df-oadd 8490  df-omul 8491  df-er 8724  df-map 8847  df-pm 8848  df-ixp 8917  df-en 8965  df-dom 8966  df-sdom 8967  df-fin 8968  df-fsupp 9397  df-fi 9445  df-sup 9476  df-inf 9477  df-oi 9544  df-card 9973  df-acn 9976  df-pnf 11289  df-mnf 11290  df-xr 11291  df-ltxr 11292  df-le 11293  df-sub 11485  df-neg 11486  df-div 11911  df-nn 12257  df-2 12319  df-3 12320  df-4 12321  df-5 12322  df-6 12323  df-7 12324  df-8 12325  df-9 12326  df-n0 12517  df-z 12603  df-dec 12722  df-uz 12867  df-q 12977  df-rp 13021  df-xneg 13138  df-xadd 13139  df-xmul 13140  df-ioo 13374  df-ico 13376  df-icc 13377  df-fz 13531  df-fzo 13674  df-fl 13804  df-seq 14014  df-exp 14074  df-hash 14341  df-cj 15097  df-re 15098  df-im 15099  df-sqrt 15233  df-abs 15234  df-clim 15483  df-rlim 15484  df-sum 15684  df-struct 17142  df-sets 17159  df-slot 17177  df-ndx 17189  df-base 17207  df-ress 17236  df-plusg 17272  df-mulr 17273  df-starv 17274  df-sca 17275  df-vsca 17276  df-ip 17277  df-tset 17278  df-ple 17279  df-ds 17281  df-unif 17282  df-hom 17283  df-cco 17284  df-rest 17430  df-topn 17431  df-0g 17449  df-gsum 17450  df-topgen 17451  df-pt 17452  df-prds 17455  df-xrs 17510  df-qtop 17515  df-imas 17516  df-xps 17518  df-mre 17592  df-mrc 17593  df-acs 17595  df-mgm 18626  df-sgrp 18705  df-mnd 18721  df-submnd 18767  df-mulg 19056  df-cntz 19305  df-cmn 19774  df-psmet 21329  df-xmet 21330  df-met 21331  df-bl 21332  df-mopn 21333  df-fbas 21334  df-fg 21335  df-cnfld 21338  df-top 22882  df-topon 22899  df-topsp 22921  df-bases 22935  df-cld 23009  df-ntr 23010  df-cls 23011  df-nei 23088  df-cn 23217  df-cnp 23218  df-lm 23219  df-haus 23305  df-tx 23552  df-hmeo 23745  df-fil 23836  df-fm 23928  df-flim 23929  df-flf 23930  df-xms 24312  df-ms 24313  df-tms 24314  df-cfil 25269  df-cau 25270  df-cmet 25271  df-grpo 30421  df-gid 30422  df-ginv 30423  df-gdiv 30424  df-ablo 30473  df-vc 30487  df-nv 30520  df-va 30523  df-ba 30524  df-sm 30525  df-0v 30526  df-vs 30527  df-nmcv 30528  df-ims 30529  df-dip 30629  df-ssp 30650  df-ph 30741  df-cbn 30791  df-hnorm 30896  df-hba 30897  df-hvsub 30899  df-hlim 30900  df-hcau 30901  df-sh 31135  df-ch 31149  df-oc 31180  df-ch0 31181  df-shs 31236  df-span 31237  df-pjh 31323
This theorem is referenced by:  kbpj  31884
  Copyright terms: Public domain W3C validator