Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quellcode-Bibliothek

© Kompilation durch diese Firma

[Weder Korrektheit noch Funktionsfähigkeit der Software werden zugesichert.]

Datei: delay_3D.pvs   Sprache: PVS

Untersuchung PVS©

mappings[T: TYPE]: THEORY
BEGIN

  IMPORTING graphs[T], trees[T], walks[T],tree_paths[T],
            structures@seq_pigeon

  G1,G2,G,H,HH,U: VAR graph[T]
  x,y,s,t: VAR T 
  e: VAR doubleton[T]
  w,p,q: VAR prewalk
  k,l,m,n: VAR nat

  premap(G1,G2): TYPE = {psi:[T -> T]| FORALL (x:T):
                                  vert(G1)(x) IMPLIES vert(G2)(psi(x))}

  map(G1,G2)   : TYPE = {phi: premap(G1,G2) | FORALL (x,y: T):
                           edge?(G1)(x,y) IMPLIES
                               edge?(G2)(phi(x),phi(y)) OR phi(x) = phi(y)} 
 
  proper?(G1:graph[T],G2:graph[T],M: map(G1,G2)): bool = 
                (FORALL (x,y: T): edge?(G1)(x,y) IMPLIES
                          edge?(G2)(M(x),M(y)))

  injective?(G1:graph[T],G2:graph[T],M: map(G1,G2)): bool = 
                injective?(M)

  fixed?(G:graph[T], phi:map(G,G)):bool = (FORALL (v: (vert(G))):  
                                           v /= phi(v))
                           IMPLIES (EXISTS (x,y: (vert(G))): 
                               y = phi(x) AND x = phi(y) AND edge?(G)(x,y))

  reachable(G,x): finite_set[T] = {y: T |  vert(G)(y) AND 
                                    (EXISTS (w: Seq(G)): walk_from?(G,w,x,y))}

  reachable_subset: LEMMA subset?(reachable(G,x),vert(G))

 
  IMPORTING graph_conn_defs[T], graph_connected, graph_pair[T], tree_paths
  IMPORTING subgraph_paths 
  IMPORTING graph_deg,graph_deg_sum,path_lems, doubletons 


  path_reach1: LEMMA path_connected?(G) IFF
                       (EXISTS (x: T): vert(G)(x) AND reachable(G,x) = vert(G))

  path_reach2:  LEMMA path_connected?(G) IFF
                      (FORALL (x: T): vert(G)(x) 
                           IMPLIES reachable(G,x) = vert(G)) 
                      AND NOT empty?(G)

  reachable_conn: LEMMA FORALL (x:(vert(G))): 
                               connected?(subgraph(G,reachable(G,x)))

  sub_tree_k: LEMMA (FORALL k,H,G: subgraph?(H,G) AND tree?(G) AND 
                                   connected?(H) AND size(G)=size(H)+k 
                       IMPLIES tree?(H)) 
                  IMPLIES (FORALL H,G: subgraph?(H,G) AND 
                           tree?(G) AND connected?(H)  IMPLIES tree?(H))

  sub_tree_0     : LEMMA tree?(G) AND subgraph?(H,G) AND size(H)=size(G) 
            AND connected?(H) IMPLIES H=G

  sub_tree_k_lemm: LEMMA (FORALL k,H,G: subgraph?(H,G) AND tree?(G) AND
                    connected?(H) AND size(G)=size(H)+k IMPLIES tree?(H))
 
  sub_tree_all    : LEMMA tree?(G) AND subgraph?(H,G) AND connected?(H)
                            IMPLIES tree?(H)

  path_reach4    : LEMMA tree?(G) AND edges(G)(e) IMPLIES
                           NOT path_connected?(del_edge(G,e))

  size_subgraph_path: LEMMA path?(G,p) IMPLIES size(G_from(G,p))=length(p)

  path_gap     : LEMMA tree?(G) AND edges(G)(e) AND e(x) AND e(y) AND
                       walk_from?(del_edge(G,e),w,x,y) IMPLIES x=y

  set_card_less: LEMMA FORALL (A: finite_set[T], B: finite_set[T]):
                 subset?(A,B) AND B(x) IMPLIES card(A) < card(B) OR A(x)

  conn_compon  : LEMMA FORALL (  x: (vert(G))): EXISTS H:
                               (subgraph?(H,G) AND connected?(H) AND
                                vert(H)(x) AND 
                          FORALL (y:(vert(H))): (deg(y,G)=deg(y,H)))  

 
  Bush(Tr:Tree, v:(vert(Tr)), e:(incident_edges(v,Tr))): Subgraph(Tr) = 
                                subgraph(Tr, reachable(del_edge(Tr,e),v))

  Bush_less: LEMMA FORALL (Tr: Tree,v,z:(vert(Tr)), e:(incident_edges(v,Tr)),
                           f:(incident_edges(z,Tr))): 
                     f(v) AND NOT e(z) 
                  IMPLIES size(Bush(Tr,z,f)) < size(Bush(Tr,v,e))

  Fox(Tr:Tree, G: Subgraph(Tr), H: Subgraph(Tr), phi:map(Tr,Tr)): bool =
                   ( EXISTS w:path?(Tr,w) AND length(w)>1 AND 
                            phi(w(0))=w(length(w)-1) AND G = G_from(Tr,w) AND
                            H = Bush(Tr,w(length(w)-1),dbl(w(length(w)-2),w(length(w)-1))))

  short_hound: LEMMA FORALL (Tr:Tree, phi:map(Tr,Tr)): 
                     path_from?(Tr,w,x,phi(x)) AND length(w)=1 IMPLIES fixed?(Tr,phi)

  back_hound : LEMMA FORALL (Tr:Tree, phi:map(Tr,Tr)): 
                     path_from?(Tr,w,x,phi(x)) AND length(w)=2 AND 
                     phi(w(1))=w(length(w)-2) IMPLIES fixed?(Tr,phi)

  stuck_hound: LEMMA FORALL (Tr:Tree, phi:map(Tr,Tr)): 
                    path_from?(Tr,w,x,phi(x)) AND length(w)>1 AND phi(w(1))=w(length(w)-1)
                IMPLIES
                    EXISTS (p:prewalk):
                       path_from?(Tr,p,w(1),phi(w(1))) AND length(p)<length(w) AND 
                            ((length(p)>1 AND p(length(p)-2)=w(length(w)-2)) OR fixed?(Tr,phi))

  whole_hound: LEMMA FORALL (Tr:Tree, phi:map(Tr,Tr)): 
                     path_from?(Tr,w,x,phi(x)) AND length(w)>2 AND 
                     phi(w(1))=w(length(w)-2) IMPLIES
                EXISTS (p:prewalk):
             path_from?(Tr,p,w(1),phi(w(1))) AND length(p)<length(w) AND 
                  (length(p)>1 IMPLIES p(length(p)-2)=w(length(w)-3))

  fixed_fox  : LEMMA FORALL (Tr:Tree, phi:map(Tr,Tr)):
                       (EXISTS (G,H:Subgraph(Tr)):Fox(Tr,G,H,phi)) 
                       OR fixed?(Tr,phi)

  small_fox  : LEMMA FORALL (Tr:Tree, phi:map(Tr,Tr),(G,H:Subgraph(Tr))): 
                     Fox(Tr,G,H,phi) 
                     IMPLIES (EXISTS (GG,HH:Subgraph(Tr)): 
                                   Fox(Tr,GG,HH,phi) AND
                             lsth((size(GG),size(HH)),(size(G),size(H)))) 
                         OR fixed?(Tr,phi)

  num_edge_tree: LEMMA connected?(G) AND num_edges(G)<size(G) 
                      IMPLIES tree?(G)

  uniq_paths?(G): bool = FORALL (s,t,p,q): path_from?(G,p,s,t) AND
                                           path_from?(G,q,s,t) IMPLIES p = q

  uniq_del_vert: LEMMA FORALL ( v:(vert(G))): uniq_paths?(G) 
                                              IMPLIES uniq_paths?(del_vert(G,v))

  del_edge_uniq: LEMMA FORALL ( e:(edges(G))):connected?(del_edge(G,e)) 
                                   IMPLIES NOT uniq_paths?(G) 

  charact_tree : LEMMA connected?(G) AND uniq_paths?(G) IMPLIES tree?(G)

  iff_tree     : LEMMA tree?(G) IFF connected?(G) AND uniq_paths?(G)

  tree_num_iff : LEMMA connected?(G) and num_edges(G)=size(G)-1 IFF tree?(G)

  tree_map     : LEMMA FORALL (phi:map(G,G)):tree?(G)
               IMPLIES fixed?(G,phi)


% We take advantage of some of the tree properties proved above to 
% deduce the theorem stated in "graphs" context that a graph with vertices
% only of degree > 1, must have a cycle.

  sub_cycle     : LEMMA FORALL (w: Seq(H)): subgraph?(H,G) and cycle?(H,w) 
                                              IMPLIES cycle?(G,w)

  exclus_cycl   : THEOREM connected?(G) IMPLIES 
                             tree?(G) XOR (EXISTS (w:Seq(G)): cycle?(G,w))

  deg_gt_1_cycle: LEMMA (FORALL (v: T): vert(G)(v) IMPLIES deg(v,G) > 1)
                          IMPLIES (EXISTS (w: Seq(G)): cycle?(G,w)) OR empty?(G)
 
                                   
END mappings



¤ Diese beiden folgenden Angebotsgruppen bietet das Unternehmen0.22Angebot  Wie Sie bei der Firma Beratungs- und Dienstleistungen beauftragen können  ¤





Druckansicht
unsichere Verbindung
Druckansicht
Hier finden Sie eine Liste der Produkte des Unternehmens

Mittel




Lebenszyklus

Die hierunter aufgelisteten Ziele sind für diese Firma wichtig


Ziele

Entwicklung einer Software für die statische Quellcodeanalyse


Bot Zugriff



                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik