Sistemas de alta integridad - Hall Logic


inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí

  • Para probar que este procedimiento debe llevarse a cabo de arriba hacia abajo, primero pruebe por separado f:=1, i:=1y luego pruebe whilelos contenidos por separado, y while
    los contenidos deben probarse por separado uno por uno.

salón triplete

inserte la descripción de la imagen aquí

  • Representa: cuando se satisface P, después de ejecutar S, se cumplirá Q (se mantiene)

Caso 1

inserte la descripción de la imagen aquí

  • si x=2satisfecho
  • Entonces, después de la expresión x:=x+1, ¿qué fórmula seráhold?
    inserte la descripción de la imagen aquí
  • Aquí x=3se dice que es "dado x=2como " preconditioncondicional astrongest postcondition

Caso 2

inserte la descripción de la imagen aquí

  • De la misma manera: cuando x=1como postcondition holds, preconditionpodemos deducir fácilmente quex=0
    inserte la descripción de la imagen aquí

  • pero aquí está preconditionel serweakest precondition

  • Esto se debe a que nuestro razonamiento inverso (hacia atrás) es menos difícil que el razonamiento hacia adelante (hacia adelante)

  • Otra forma de entender es:
    x > 5 = > x > 3 x>5 => x>3X>5=>X>3 Entonces decimosx > 5 x > 5X>5 es una condición más estricta, es decir, unastrongcondición más estricta. Del mismo modo veamos estopost condition

  • Si nos las preconditionarreglamos , x=3podemos x=3derivar otras más relajadas basadas en esta condición postcondition, como x > 2 x>2X>2 , nuestra fórmula se puede escribir de la siguiente manera:
    { x = 2 } x : = x + 1 { x > 2 } \{x=2\} x:=x+1 \{x>2\}{ x=2 } x:=X+1 { x>2 }

  • Esto está perfectamente bien mientras x > 2 x>2X>La condición de 2 no es tan buena comox = 3 x=3X=3 strong 's

  • Por la misma razón, vemos por qué weakest precondition: porque cuando usamos una preconditioncondición que es un poco más estricta que la actual, la fórmula de derivación también es válida:
    x + 1 = 3 = > x = 2 x+1=3 => x=2X+1=3=>X=2

  • Entonces pensamos que x + 1 = 3 x+1=3X+1=3 Esta condición es mejor quex = 2 x=2X=2 es estricto, así que lo llevamos a la fórmula original:
    { x + 1 = 3 } x : = x + 1 { x = 3 } \{x+1=3\} x:=x+1 \{x=3\}{ x+1=3 } x:=X+1 { x=3 }

  • Por supuesto, esta fórmula también se cumple

lógica

inserte la descripción de la imagen aquí

reglas de derivación

inserte la descripción de la imagen aquí

  • Si AAA holds (por verdadero), mientras queA => BA => BA=>B también es cierto, entonces podemos deducirBBB también es cierto
  • "——" significa relación de derivación

inserte la descripción de la imagen aquí

  • Esta fórmula muestra trueque la naturalezaholds
  • También se puede expresar 我们假设这种情况是 trueque dado que no hay condiciones previas, se puede considerar comoassumption
    inserte la descripción de la imagen aquí
  • Si AAA aguanta, mientras queBBB se mantiene, luegoA ^ Btambién se mantiene

adelante contra atrás

adelante

inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí

  • Para los dos primeros forward, el razonamiento no es difícil.
    inserte la descripción de la imagen aquí

  • Pero por lo siguiente
    inserte la descripción de la imagen aquí

hacia atrás

inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí

  • Podemos postdeducir fácilmente preel resultado de del resultado de
    inserte la descripción de la imagen aquí

  • Especialmente para la segunda fórmula, solo necesitamos calcularla de acuerdo con el resultado x=1y las condiciones , solo necesitamos invertir el proceso para salirx:=x+1x=0x:=x+1pre

  • mismo:
    inserte la descripción de la imagen aquí

  • Para esta expresión, también podemos escribir fácilmente
    inserte la descripción de la imagen aquí

  • forwardVeamos el problema difícil en el razonamiento.
    inserte la descripción de la imagen aquí

  • Aquí solo necesitamos
    inserte la descripción de la imagen aquí

  • Con el fenómeno anterior, podemos obtenerrule of assignment

regla de asignación

inserte la descripción de la imagen aquí

  • PÁGINASP es sobrexxLa fórmula de x , después dex:=Eeste proceso,PPP tiene,

  • Entonces podemos reemplazar post conditiontodo xconE
    inserte la descripción de la imagen aquí

  • En esta fórmula E = x + 1 E=x+1mi=X+1 entonces ponx = 1post conditionenX=Todo xxen 1reemplazar x con EEE comoprecondition1=1X+1=1

  • Entonces el resultado es:
    { x + 1 = 1 } x : = x + 1 { x = 1 } \{x+1=1\} x:=x+1\{x=1\}{ x+1=1 } x:=X+1 { x=1 }
    { x = 0 } x : = x + 1 { x = 1 } \{x=0\}x:=x+1\{x=1\}{ x=0 } x:=X+1 { x=1 }

  • Practica uno más:
    inserte la descripción de la imagen aquí
    inserte la descripción de la imagen aquí

reglas de consecuencia

inserte la descripción de la imagen aquí

  • De lo comentado anteriormente forwardy backwardpodemos deducir mediante esta fórmula:
    inserte la descripción de la imagen aquí

  • Si cumplimos las siguientes condiciones, también podemos obtener
    inserte la descripción de la imagen aquí
    inserte la descripción de la imagen aquí

  • porque x = 0 x = 0X=0 condicional quex >= 0 x>=0X>=0 es estricto, por lo que también espreconditionfactible como

  • de este modoinserte la descripción de la imagen aquí

  • Analizarlo: P ′ P 'PAG' esPPUn subconjunto de P , el mismoQQQ esQ'Q'q' , entoncesPPEl rango de P debe reducirse, mientras queQQEl rango de Q debe ampliarse.

Combinando las dos reglas anteriores

inserte la descripción de la imagen aquí

  • Supongamos que queremos probar que:
    inserte la descripción de la imagen aquí

  • En primer lugar, primero usamos esta fórmula como consequence rulela parte inferior de , luego eso es P ′ = { x = 0 } P'=\{x=0\}PAG={ x=0 } ,Q ′ = { x > 0 } Q'=\{x>0\}q={ x>0 }
    inserte la descripción de la imagen aquí

  • No cambiamos de ahora en adelante post condition, cuando queremos usar consequence rulenecesitamos encontrar P ′ => P P'=>PPAG=>P , y ahora tenemosP ′ = { x = 0 } P' = \{x=0\}PAG={ x=0 }

  • Entonces la fórmula se convierte en la siguiente:
    inserte la descripción de la imagen aquí

  • Supongamos que hay una variable intermedia PPP se deriva de

  • A continuación, use la pieza en el cuadro rojo en la figura a continuación.assignement axiom
    inserte la descripción de la imagen aquí

  • { ? P } x : = x + 1 { x > 0 } \{?P\} x:=x+1 \{x>0\}{ ? P } x:=X+1 { x>0 } Se puede deducir queP = x + 1 > 0 P=x+1>0PAG=X+1>0

  • Luego cambie esta banda a x = 0 => ?P x=0 => ?PX=0=>? P parte, puedes obtener:
    inserte la descripción de la imagen aquí
    inserte la descripción de la imagen aquí

  • probar completo

  • Para resumir la lógica de prueba anterior
    inserte la descripción de la imagen aquí

regla de secuencia

inserte la descripción de la imagen aquí

  • A la hora de demostrar este tipo de temas, solemos partir de la última parte y demostrarlo al revés.
    inserte la descripción de la imagen aquí
    • La prueba comienza:
      inserte la descripción de la imagen aquí
  • Primer uso rule of consequenceS 1 ; S 2 S1 ; S2S1 ; _S 2 se considera como un todo, en este momentoP ′ = { x = 0 } , Q ′ = { X = 2 } P'= \{x=0\}, Q'=\{X=2\}PAG={ x=0 } ,q={ X=2 } Así que en este momento todavía tenemos que verP ′ = > P P'=>PPAG=>P por lo que todavía suponemos que hay una variable intermedia?P ?P? PAG
    inserte la descripción de la imagen aquí
  • Ahora no es posible hacer la parte de la selección de marcos en la figura a continuación assign rule, porque assignment rulesolo se puede singlerealizar en los pasos, por lo que ahora tenemos que realizar el proceso en la parte de la selección de marcos en la figura a continuación.rule of sequencing

inserte la descripción de la imagen aquí

  • y obten:
    inserte la descripción de la imagen aquí
  • Introducimos una variable intermedia ?R ?R? R , mientras se divide el razonamiento intermedio en dosindividualpartes
  • En este momento, preste atención a la parte encuadrada en la siguiente figura:
    inserte la descripción de la imagen aquí
  • Hay dos partes desconocidas aquí ?P , ?R ?P, ?R? pag _? R Por lo tanto, tenemos que buscar otros avances, que en realidad es muy obvio De la última fórmula,?R ?R? R comenzó a usarassignment rule
    inserte la descripción de la imagen aquí
  • Cuando sale esta demostración, es lógico que la esquina superior izquierda contenga ?P ?P? La fórmula de Passignment rule se puede
    inserte la descripción de la imagen aquí
  • Ahora solo queda la parte más a la izquierda:
    inserte la descripción de la imagen aquí
  • De hecho, él es constante establecido:
    inserte la descripción de la imagen aquí

Caja de programa más grande

  • El siguiente programa significa un swapprograma
    inserte la descripción de la imagen aquí
    inserte la descripción de la imagen aquí
  • De hecho, esta prueba es equivalente a sagregar un término intermedio entre cada dos, y luego debe pasar uno por uno assignment rulepara probar

inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí

inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí

saltar regla

inserte la descripción de la imagen aquí

regla condicional

inserte la descripción de la imagen aquí

el caso


inserte la descripción de la imagen aquí

  • o usar primeroconsequence rule
  • De esta forma, equivaldríamos a sumar un ?P ?Pprecondition entre y operaciones posteriores? PAG
  • inserte la descripción de la imagen aquí
  • Luego basamosconditional rule
    inserte la descripción de la imagen aquí
    inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/qq_42902997/article/details/131175778
Recomendado
Clasificación