Program Verification - Translation rule

In summary, the rule of translation states that the left hand side of the equation equals the right hand side.
  • #1
craigs
2
0
Hi

I am doing a course on Program verification and am having trouble with the properties of summation, more specifically the rule of translation:

"Suppose function f maps values of type J to values of type K, and suppose g is a function that maps values of type K to values of type J. suppose further that f and g are inverses. That is, suppose that, for all j[itex]\in[/itex]J and k[itex]\in[/itex]K, (f.j=k) [itex]\equiv[/itex] (j=g.k)

[itex]\left\langle[/itex] [itex]\Sigma[/itex]k[itex]\in[/itex]K:R:T[itex]\right\rangle[/itex] = [itex]\left\langle[/itex] [itex]\Sigma[/itex]j[itex]\in[/itex]J:R[k:=f.j]:T[k:=f.j][itex]\right\rangle[/itex]

My question: I actually do not understand how the LHS of the equation equals the RHS.
Perhaps more specifically I am not sure how R[k:=f.j] and T[k:=f.j] appears on the right side, where does it come from?
 
Physics news on Phys.org
  • #2
craigs said:
Hi

I am doing a course on Program verification and am having trouble with the properties of summation, more specifically the rule of translation:

"Suppose function f maps values of type J to values of type K, and suppose g is a function that maps values of type K to values of type J. suppose further that f and g are inverses. That is, suppose that, for all j[itex]\in[/itex]J and k[itex]\in[/itex]K, (f.j=k) [itex]\equiv[/itex] (j=g.k)

[itex]\left\langle[/itex] [itex]\Sigma[/itex]k[itex]\in[/itex]K:R:T[itex]\right\rangle[/itex] = [itex]\left\langle[/itex] [itex]\Sigma[/itex]j[itex]\in[/itex]J:R[k:=f.j]:T[k:=f.j][itex]\right\rangle[/itex]

My question: I actually do not understand how the LHS of the equation equals the RHS.
Perhaps more specifically I am not sure how R[k:=f.j] and T[k:=f.j] appears on the right side, where does it come from?
Please fix your LaTeX so that it is readable. I can't tell what you're trying to say, so I can't fix it.
 
  • #3
Sorry. Here is my next attempt:

"Suppose function f maps values of type J to values of type K, and suppose g is a function that maps values of type K to values of type J. suppose further that f and g are inverses. That is, suppose that, for all j[itex]\in[/itex]J and k[itex]\in[/itex]K, (f.j=k) [itex]\equiv[/itex] (j=g.k)

[itex]\langle[/itex] [itex]\Sigma[/itex]k[itex]\in[/itex]K:R:T[itex]\rangle[/itex] = [itex]\langle[/itex] [itex]\Sigma[/itex]j[itex]\in[/itex]J:R[k:=f.j]:T[k:=f.j][itex]\rangle[/itex]

My question: I actually do not understand how the LHS of the equation equals the RHS.
Perhaps more specifically I am not sure how R[k:=f.j] and T[k:=f.j] appears on the right side, where does it come from?
 

FAQ: Program Verification - Translation rule

What is Program Verification?

Program Verification is the process of formally proving that a computer program meets its specified requirements. It involves using mathematical methods to analyze the program's source code and ensure that it behaves correctly under all possible inputs and conditions.

Why is Program Verification important?

Program Verification is crucial for ensuring the correctness and reliability of software systems. It helps detect and eliminate errors and bugs in the early stages of development, reducing the overall cost and time of the project. It also improves the quality and safety of software, especially in critical systems such as medical devices or transportation systems.

What are Translation rules in Program Verification?

Translation rules are a set of standard mathematical rules used in Program Verification to represent the behavior of a program. These rules define how the inputs to a program are translated into outputs and specify the expected behavior of the program in terms of preconditions and postconditions.

How do Translation rules help in Program Verification?

Translation rules provide a formal and precise way to specify the behavior of a program, making it easier to analyze and verify its correctness. They also help detect errors and inconsistencies in the program's design and implementation early on, making it easier to fix them before they cause bigger problems in the future.

What are some challenges in using Translation rules for Program Verification?

One of the main challenges in using Translation rules for Program Verification is the complexity and size of real-world programs. It can be time-consuming and computationally intensive to verify large programs using Translation rules. Another challenge is the difficulty in formally specifying the expected behavior of a program, as it may not always be clear and can be open to interpretation.

Back
Top