<?xml version="1.0"?>
<div class="add">

<b>let </b><font color="Maroon" title="c1">G</font> be  <a href="glib_000.html#V2" title="GLIB_000:attr.2">finite</a> <a href="glib_003.html#V7" title="GLIB_003:attr.7">real-weighted</a> <a href="glib_003.html#NM1" title="GLIB_003:NM.1">WGraph</a>;<br/><b>let </b><font color="Maroon" title="c2">src</font> be   <a href="glib_000.html#NM10" title="GLIB_000:NM.10">Vertex</a> of <font color="Maroon" title="c1">G</font>;<br/>



<b>set </b><font color="Maroon" title="c3">DCS</font> =  <a href="glib_004.html#K6" title="GLIB_004:func.6">DIJK:CompSeq</a> <font color="Maroon" title="c1">G</font>,<font color="Maroon" title="c2">src</font>;<br/>
<div><a class="txt" onclick="hs2(this)" href="javascript:()" title="39_1"><b>now </b></a><div class="add"><b>take </b><font color="Maroon" title="c4">n</font> =  <a href="card_1.html#K5" title="CARD_1:func.5">card</a> <span class="p1">(<span class="default"><font color="Maroon" title="c1">G</font> <a href="glib_002.html#K2" title="GLIB_002:func.2">.reachableDFrom</a> <font color="Maroon" title="c2">src</font></span>)</span>;<br/><b>set </b><font color="Maroon" title="c5">Gn</font> = <span class="p1">(<span class="default"><a href="glib_004.html#K6" title="GLIB_004:func.6">DIJK:CompSeq</a> <font color="Maroon" title="c1">G</font>,<font color="Maroon" title="c2">src</font></span>)</span> <a href="glib_004.html#K5" title="GLIB_004:func.5">.</a> <font color="Maroon" title="c4">n</font>;<br/><b>set </b><font color="Maroon" title="c6">Gn1a</font> = <span class="p1">(<span class="default"><a href="glib_004.html#K6" title="GLIB_004:func.6">DIJK:CompSeq</a> <font color="Maroon" title="c1">G</font>,<font color="Maroon" title="c2">src</font></span>)</span> <a href="glib_004.html#K5" title="GLIB_004:func.5">.</a> <span class="p1">(<span class="default"><font color="Maroon" title="c4">n</font> <a href="nat_1.html#K2" title="NAT_1:func.2">+</a> 1</span>)</span>;<br/><b>set </b><font color="Maroon" title="c7">BestEdges</font> =  <a href="glib_004.html#K2" title="GLIB_004:func.2">DIJK:NextBestEdges</a> <span class="p1">(<span class="default"><span class="p2">(<span class="default"><a href="glib_004.html#K6" title="GLIB_004:func.6">DIJK:CompSeq</a> <font color="Maroon" title="c1">G</font>,<font color="Maroon" title="c2">src</font></span>)</span> <a href="glib_004.html#K5" title="GLIB_004:func.5">.</a> <font color="Maroon" title="c4">n</font></span>)</span>;<br/><b>set </b><font color="Maroon" title="c8">RSize</font> =  <a href="card_1.html#K5" title="CARD_1:func.5">card</a> <span class="p1">(<span class="default"><font color="Maroon" title="c1">G</font> <a href="glib_002.html#K2" title="GLIB_002:func.2">.reachableDFrom</a> <font color="Maroon" title="c2">src</font></span>)</span>;<br/><a NAME="E1:39_1"/><i><font color="Green" title="E27">A1</font></i>: 
<span class="p1">(<span class="default"><a href="glib_004.html#K6" title="GLIB_004:func.6">DIJK:CompSeq</a> <font color="Maroon" title="c1">G</font>,<font color="Maroon" title="c2">src</font></span>)</span> <a href="glib_004.html#K5" title="GLIB_004:func.5">.</a> <span class="p1">(<span class="default"><font color="Maroon" title="c4">n</font> <a href="nat_1.html#K2" title="NAT_1:func.2">+</a> 1</span>)</span> <a href="hidden.html#R1" title="HIDDEN:pred.1">=</a>  <a href="glib_004.html#K3" title="GLIB_004:func.3">DIJK:Step</a> <span class="p1">(<span class="default"><span class="p2">(<span class="default"><a href="glib_004.html#K6" title="GLIB_004:func.6">DIJK:CompSeq</a> <font color="Maroon" title="c1">G</font>,<font color="Maroon" title="c2">src</font></span>)</span> <a href="glib_004.html#K5" title="GLIB_004:func.5">.</a> <font color="Maroon" title="c4">n</font></span>)</span>
 <b>by </b><i><a class="ref" href="glib_004.html#D7" target="_self" title="GLIB_004:def.7">Def7</a></i>;<br/><div><a class="txt" onclick="hs2(this)" href="javascript:()" title="39_1_1"><b>now </b></a><div class="add"><div><a class="txt" onclick="hsNdiv(this)" href="javascript:()" title="39_1_1_1"><b>per </b></a><a class="txt" onclick="hs(this)" href="javascript:()"><b>cases </b></a><span class="hide"><a NAME="E1:39_1_1_1"/>
(  <a href="glib_004.html#K2" title="GLIB_004:func.2">DIJK:NextBestEdges</a> <span class="p1">(<span class="default"><span class="p2">(<span class="default"><a href="glib_004.html#K6" title="GLIB_004:func.6">DIJK:CompSeq</a> <font color="Maroon" title="c1">G</font>,<font color="Maroon" title="c2">src</font></span>)</span> <a href="glib_004.html#K5" title="GLIB_004:func.5">.</a> <font color="Maroon" title="c4">n</font></span>)</span> <a href="hidden.html#R1" title="HIDDEN:pred.1">=</a>  <a href="xboole_0.html#K1" title="XBOOLE_0:func.1">{}</a>  or  <a href="glib_004.html#K2" title="GLIB_004:func.2">DIJK:NextBestEdges</a> <span class="p1">(<span class="default"><span class="p2">(<span class="default"><a href="glib_004.html#K6" title="GLIB_004:func.6">DIJK:CompSeq</a> <font color="Maroon" title="c1">G</font>,<font color="Maroon" title="c2">src</font></span>)</span> <a href="glib_004.html#K5" title="GLIB_004:func.5">.</a> <font color="Maroon" title="c4">n</font></span>)</span> <a href="hidden.html#NR2" title="HIDDEN:NR.2">&lt;&gt;</a>  <a href="xboole_0.html#K1" title="XBOOLE_0:func.1">{}</a>  )
 </span>;<br/><div class="add"><div><a class="txt" onclick="hsNdiv(this)" href="javascript:()" title="39_1_1_1_1"><b>suppose </b></a><a NAME="E1:39_1_1_1_1"/>
 <a href="glib_004.html#K2" title="GLIB_004:func.2">DIJK:NextBestEdges</a> <span class="p1">(<span class="default"><span class="p2">(<span class="default"><a href="glib_004.html#K6" title="GLIB_004:func.6">DIJK:CompSeq</a> <font color="Maroon" title="c1">G</font>,<font color="Maroon" title="c2">src</font></span>)</span> <a href="glib_004.html#K5" title="GLIB_004:func.5">.</a> <font color="Maroon" title="c4">n</font></span>)</span> <a href="hidden.html#R1" title="HIDDEN:pred.1">=</a>  <a href="xboole_0.html#K1" title="XBOOLE_0:func.1">{}</a> 
 ;<br/><div class="add"><b>hence </b><a NAME="E2:39_1_1_1_1"/>
<span class="p1">(<span class="default"><a href="glib_004.html#K6" title="GLIB_004:func.6">DIJK:CompSeq</a> <font color="Maroon" title="c1">G</font>,<font color="Maroon" title="c2">src</font></span>)</span> <a href="glib_004.html#K5" title="GLIB_004:func.5">.</a> <font color="Maroon" title="c4">n</font> <a href="hidden.html#R1" title="HIDDEN:pred.1">=</a> <span class="p1">(<span class="default"><a href="glib_004.html#K6" title="GLIB_004:func.6">DIJK:CompSeq</a> <font color="Maroon" title="c1">G</font>,<font color="Maroon" title="c2">src</font></span>)</span> <a href="glib_004.html#K5" title="GLIB_004:func.5">.</a> <span class="p1">(<span class="default"><font color="Maroon" title="c4">n</font> <a href="nat_1.html#K2" title="NAT_1:func.2">+</a> 1</span>)</span>
 <b>by </b><i><a class="txt" href="glib_004.html#E1:39_1"><i><font color="Green" title="E27">A1</font></i></a>, <a class="ref" href="glib_004.html#D5" target="_self" title="GLIB_004:def.5">Def5</a></i>;<br/></div><b>end;</b></div><div><a class="txt" onclick="hsNdiv(this)" href="javascript:()" title="39_1_1_1_2"><b>suppose </b></a><a NAME="E1:39_1_1_1_2"/><i><font color="Green" title="E28">A2</font></i>: 
 <a href="glib_004.html#K2" title="GLIB_004:func.2">DIJK:NextBestEdges</a> <span class="p1">(<span class="default"><span class="p2">(<span class="default"><a href="glib_004.html#K6" title="GLIB_004:func.6">DIJK:CompSeq</a> <font color="Maroon" title="c1">G</font>,<font color="Maroon" title="c2">src</font></span>)</span> <a href="glib_004.html#K5" title="GLIB_004:func.5">.</a> <font color="Maroon" title="c4">n</font></span>)</span> <a href="hidden.html#NR2" title="HIDDEN:NR.2">&lt;&gt;</a>  <a href="xboole_0.html#K1" title="XBOOLE_0:func.1">{}</a> 
 ;<br/><div class="add"><a NAME="E2:39_1_1_1_2"/><i><font color="Green" title="E29">A3</font></i>: 
 <a href="card_1.html#K1" title="CARD_1:func.1">Card</a> <span class="p1">(<span class="default"><span class="p2">(<span class="default"><span class="p3">(<span class="default"><a href="glib_004.html#K6" title="GLIB_004:func.6">DIJK:CompSeq</a> <font color="Maroon" title="c1">G</font>,<font color="Maroon" title="c2">src</font></span>)</span> <a href="glib_004.html#K5" title="GLIB_004:func.5">.</a> <font color="Maroon" title="c4">n</font></span>)</span> <a href="glib_003.html#K14" title="GLIB_003:func.14">.labeledV()</a> </span>)</span> <a href="hidden.html#R1" title="HIDDEN:pred.1">=</a>  <a href="xxreal_0.html#K3" title="XXREAL_0:func.3">min</a> <span class="p1">(<span class="default"><font color="Maroon" title="c4">n</font> <a href="nat_1.html#K2" title="NAT_1:func.2">+</a> 1</span>)</span>,<span class="p1">(<span class="default"><a href="card_1.html#K5" title="CARD_1:func.5">card</a> <span class="p2">(<span class="default"><font color="Maroon" title="c1">G</font> <a href="glib_002.html#K2" title="GLIB_002:func.2">.reachableDFrom</a> <font color="Maroon" title="c2">src</font></span>)</span></span>)</span>
 <b>by </b><i><a class="ref" href="glib_004.html#T20" target="_self" title="GLIB_004:th.20">Th20</a></i>;<br/><a NAME="E3:39_1_1_1_2"/>
 <a href="card_1.html#K5" title="CARD_1:func.5">card</a> <span class="p1">(<span class="default"><font color="Maroon" title="c1">G</font> <a href="glib_002.html#K2" title="GLIB_002:func.2">.reachableDFrom</a> <font color="Maroon" title="c2">src</font></span>)</span> <a href="xxreal_0.html#R1" title="XXREAL_0:pred.1">&lt;=</a> <span class="p1">(<span class="default"><a href="card_1.html#K5" title="CARD_1:func.5">card</a> <span class="p2">(<span class="default"><font color="Maroon" title="c1">G</font> <a href="glib_002.html#K2" title="GLIB_002:func.2">.reachableDFrom</a> <font color="Maroon" title="c2">src</font></span>)</span></span>)</span> <a href="nat_1.html#K2" title="NAT_1:func.2">+</a> 1
 <b>by </b><i><a class="ref" href="nat_1.html#T11" title="NAT_1:th.11">NAT_1:11</a></i>;<br/><a NAME="E4:39_1_1_1_2"/><b>then </b><i><font color="Green" title="E30">A4</font></i>: 
 <a href="card_1.html#K5" title="CARD_1:func.5">card</a> <span class="p1">(<span class="default"><span class="p2">(<span class="default"><span class="p3">(<span class="default"><a href="glib_004.html#K6" title="GLIB_004:func.6">DIJK:CompSeq</a> <font color="Maroon" title="c1">G</font>,<font color="Maroon" title="c2">src</font></span>)</span> <a href="glib_004.html#K5" title="GLIB_004:func.5">.</a> <font color="Maroon" title="c4">n</font></span>)</span> <a href="glib_003.html#K14" title="GLIB_003:func.14">.labeledV()</a> </span>)</span> <a href="hidden.html#R1" title="HIDDEN:pred.1">=</a>  <a href="card_1.html#K5" title="CARD_1:func.5">card</a> <span class="p1">(<span class="default"><font color="Maroon" title="c1">G</font> <a href="glib_002.html#K2" title="GLIB_002:func.2">.reachableDFrom</a> <font color="Maroon" title="c2">src</font></span>)</span>
 <b>by </b><i><a class="txt" href="glib_004.html#E2:39_1_1_1_2"><i><font color="Green" title="E29">A3</font></i></a>, <a class="ref" href="xxreal_0.html#D8" title="XXREAL_0:def.8">XXREAL_0:def 8</a></i>;<br/><a NAME="E5:39_1_1_1_2"/><i><font color="Green" title="E31">A5</font></i>: 
 <a href="card_1.html#K5" title="CARD_1:func.5">card</a> <span class="p1">(<span class="default"><span class="p2">(<span class="default"><a href="glib_004.html#K3" title="GLIB_004:func.3">DIJK:Step</a> <span class="p3">(<span class="default"><span class="p4">(<span class="default"><a href="glib_004.html#K6" title="GLIB_004:func.6">DIJK:CompSeq</a> <font color="Maroon" title="c1">G</font>,<font color="Maroon" title="c2">src</font></span>)</span> <a href="glib_004.html#K5" title="GLIB_004:func.5">.</a> <font color="Maroon" title="c4">n</font></span>)</span></span>)</span> <a href="glib_003.html#K14" title="GLIB_003:func.14">.labeledV()</a> </span>)</span> <a href="hidden.html#R1" title="HIDDEN:pred.1">=</a> <span class="p1">(<span class="default"><a href="card_1.html#K5" title="CARD_1:func.5">card</a> <span class="p2">(<span class="default"><span class="p3">(<span class="default"><span class="p4">(<span class="default"><a href="glib_004.html#K6" title="GLIB_004:func.6">DIJK:CompSeq</a> <font color="Maroon" title="c1">G</font>,<font color="Maroon" title="c2">src</font></span>)</span> <a href="glib_004.html#K5" title="GLIB_004:func.5">.</a> <font color="Maroon" title="c4">n</font></span>)</span> <a href="glib_003.html#K14" title="GLIB_003:func.14">.labeledV()</a> </span>)</span></span>)</span> <a href="nat_1.html#K2" title="NAT_1:func.2">+</a> 1
 <b>by </b><i><a class="txt" href="glib_004.html#E1:39_1_1_1_2"><i><font color="Green" title="E28">A2</font></i></a>, <a class="ref" href="glib_004.html#T13" target="_self" title="GLIB_004:th.13">Th13</a></i>;<br/><a NAME="E6:39_1_1_1_2"/><i><font color="Green" title="E32">A6</font></i>: 
<span class="p1">(<span class="default"><a href="card_1.html#K5" title="CARD_1:func.5">card</a> <span class="p2">(<span class="default"><font color="Maroon" title="c1">G</font> <a href="glib_002.html#K2" title="GLIB_002:func.2">.reachableDFrom</a> <font color="Maroon" title="c2">src</font></span>)</span></span>)</span> <a href="nat_1.html#K2" title="NAT_1:func.2">+</a> 1 <a href="xxreal_0.html#R1" title="XXREAL_0:pred.1">&lt;=</a> <span class="p1">(<span class="default"><span class="p2">(<span class="default"><a href="card_1.html#K5" title="CARD_1:func.5">card</a> <span class="p3">(<span class="default"><font color="Maroon" title="c1">G</font> <a href="glib_002.html#K2" title="GLIB_002:func.2">.reachableDFrom</a> <font color="Maroon" title="c2">src</font></span>)</span></span>)</span> <a href="nat_1.html#K2" title="NAT_1:func.2">+</a> 1</span>)</span> <a href="nat_1.html#K2" title="NAT_1:func.2">+</a> 1
 <b>by </b><i><a class="ref" href="nat_1.html#T11" title="NAT_1:th.11">NAT_1:11</a></i>;<br/><a NAME="E7:39_1_1_1_2"/>
 <a href="card_1.html#K5" title="CARD_1:func.5">card</a> <span class="p1">(<span class="default"><font color="Maroon" title="c1">G</font> <a href="glib_002.html#K2" title="GLIB_002:func.2">.reachableDFrom</a> <font color="Maroon" title="c2">src</font></span>)</span> <a href="xxreal_0.html#R1" title="XXREAL_0:pred.1">&lt;=</a> <span class="p1">(<span class="default"><a href="card_1.html#K5" title="CARD_1:func.5">card</a> <span class="p2">(<span class="default"><font color="Maroon" title="c1">G</font> <a href="glib_002.html#K2" title="GLIB_002:func.2">.reachableDFrom</a> <font color="Maroon" title="c2">src</font></span>)</span></span>)</span> <a href="nat_1.html#K2" title="NAT_1:func.2">+</a> 1
 <b>by </b><i><a class="ref" href="nat_1.html#T11" title="NAT_1:th.11">NAT_1:11</a></i>;<br/><a NAME="E8:39_1_1_1_2"/><b>then </b><i><font color="Green" title="E33">A7</font></i>: 
 <a href="card_1.html#K5" title="CARD_1:func.5">card</a> <span class="p1">(<span class="default"><font color="Maroon" title="c1">G</font> <a href="glib_002.html#K2" title="GLIB_002:func.2">.reachableDFrom</a> <font color="Maroon" title="c2">src</font></span>)</span> <a href="xxreal_0.html#R1" title="XXREAL_0:pred.1">&lt;=</a> <span class="p1">(<span class="default"><font color="Maroon" title="c4">n</font> <a href="nat_1.html#K2" title="NAT_1:func.2">+</a> 1</span>)</span> <a href="nat_1.html#K2" title="NAT_1:func.2">+</a> 1
 <b>by </b><i><a class="txt" href="glib_004.html#E6:39_1_1_1_2"><i><font color="Green" title="E32">A6</font></i></a>, <a class="ref" href="xxreal_0.html#T2" title="XXREAL_0:th.2">XXREAL_0:2</a></i>;<br/> <a href="card_1.html#K5" title="CARD_1:func.5">card</a> <span class="p1">(<span class="default"><span class="p2">(<span class="default"><span class="p3">(<span class="default"><a href="glib_004.html#K6" title="GLIB_004:func.6">DIJK:CompSeq</a> <font color="Maroon" title="c1">G</font>,<font color="Maroon" title="c2">src</font></span>)</span> <a href="glib_004.html#K5" title="GLIB_004:func.5">.</a> <span class="p3">(<span class="default"><font color="Maroon" title="c4">n</font> <a href="nat_1.html#K2" title="NAT_1:func.2">+</a> 1</span>)</span></span>)</span> <a href="glib_003.html#K14" title="GLIB_003:func.14">.labeledV()</a> </span>)</span> = 
 <a href="xxreal_0.html#K3" title="XXREAL_0:func.3">min</a> <span class="p1">(<span class="default"><span class="p2">(<span class="default"><font color="Maroon" title="c4">n</font> <a href="nat_1.html#K2" title="NAT_1:func.2">+</a> 1</span>)</span> <a href="nat_1.html#K2" title="NAT_1:func.2">+</a> 1</span>)</span>,<span class="p1">(<span class="default"><a href="card_1.html#K5" title="CARD_1:func.5">card</a> <span class="p2">(<span class="default"><font color="Maroon" title="c1">G</font> <a href="glib_002.html#K2" title="GLIB_002:func.2">.reachableDFrom</a> <font color="Maroon" title="c2">src</font></span>)</span></span>)</span>
<b>by </b><i><a class="ref" href="glib_004.html#T20" target="_self" title="GLIB_004:th.20">Th20</a></i>
<br/>.= 
 <a href="card_1.html#K5" title="CARD_1:func.5">card</a> <span class="p1">(<span class="default"><font color="Maroon" title="c1">G</font> <a href="glib_002.html#K2" title="GLIB_002:func.2">.reachableDFrom</a> <font color="Maroon" title="c2">src</font></span>)</span>
<b>by </b><i><a class="txt" href="glib_004.html#E8:39_1_1_1_2"><i><font color="Green" title="E33">A7</font></i></a>, <a class="ref" href="xxreal_0.html#D8" title="XXREAL_0:def.8">XXREAL_0:def 8</a></i>
;<br/><b>hence </b><a NAME="E10:39_1_1_1_2"/>
<span class="p1">(<span class="default"><a href="glib_004.html#K6" title="GLIB_004:func.6">DIJK:CompSeq</a> <font color="Maroon" title="c1">G</font>,<font color="Maroon" title="c2">src</font></span>)</span> <a href="glib_004.html#K5" title="GLIB_004:func.5">.</a> <font color="Maroon" title="c4">n</font> <a href="hidden.html#R1" title="HIDDEN:pred.1">=</a> <span class="p1">(<span class="default"><a href="glib_004.html#K6" title="GLIB_004:func.6">DIJK:CompSeq</a> <font color="Maroon" title="c1">G</font>,<font color="Maroon" title="c2">src</font></span>)</span> <a href="glib_004.html#K5" title="GLIB_004:func.5">.</a> <span class="p1">(<span class="default"><font color="Maroon" title="c4">n</font> <a href="nat_1.html#K2" title="NAT_1:func.2">+</a> 1</span>)</span>
 <b>by </b><i><a class="txt" href="glib_004.html#E4:39_1_1_1_2"><i><font color="Green" title="E30">A4</font></i></a>, <a class="txt" href="glib_004.html#E5:39_1_1_1_2"><i><font color="Green" title="E31">A5</font></i></a>, <a class="ref" href="glib_004.html#D7" target="_self" title="GLIB_004:def.7">Def7</a></i>;<br/></div><b>end;</b></div></div><b>end;</b></div></div><b>end;</b></div><b>hence </b><a NAME="E3:39_1"/>
<span class="p1">(<span class="default"><a href="glib_004.html#K6" title="GLIB_004:func.6">DIJK:CompSeq</a> <font color="Maroon" title="c1">G</font>,<font color="Maroon" title="c2">src</font></span>)</span> <a href="glib_004.html#K5" title="GLIB_004:func.5">.</a> <font color="Maroon" title="c4">n</font> <a href="hidden.html#R1" title="HIDDEN:pred.1">=</a> <span class="p1">(<span class="default"><a href="glib_004.html#K6" title="GLIB_004:func.6">DIJK:CompSeq</a> <font color="Maroon" title="c1">G</font>,<font color="Maroon" title="c2">src</font></span>)</span> <a href="glib_004.html#K5" title="GLIB_004:func.5">.</a> <span class="p1">(<span class="default"><font color="Maroon" title="c4">n</font> <a href="nat_1.html#K2" title="NAT_1:func.2">+</a> 1</span>)</span>
 ;<br/></div><b>end;</b></div>
<b>hence </b><a NAME="E2:39"/>
 <a href="glib_004.html#K6" title="GLIB_004:func.6">DIJK:CompSeq</a> <font color="Maroon" title="c1">G</font>,<font color="Maroon" title="c2">src</font> is <a href="glib_000.html#V13" title="GLIB_000:attr.13">halting</a>
 <b>by </b><i><a class="ref" href="glib_000.html#D68" title="GLIB_000:def.68">GLIB_000:def 68</a></i>;<br/>


</div>
