Program derivation

Program derivation

In computer science, program derivation is the derivation of a program from its specification, by mathematical means. To derive a program means to write a formal specification, which is usually non-executable, and then apply mathematically correct rules in order to obtain an executable program satisfying that specification. The program thus obtained is then correct by construction. Program and correctness proof are constructed together. The approach usually taken in formal verification is to first write a program, and then provide a proof that it conforms to a given specification. The main problems with this are that * the resulting proof is often long and cumbersome; * no insight is given as to how the program was developed; it appears "like a rabbit out of a hat"; * should the program happen to be incorrect in some subtle way, the attempt to verify it is likely to be long and certain to be fruitless. Program derivation tries to remedy these shortcomings by * keeping proofs shorter, by development of appropriate mathematical notations; * making design decisions through formal manipulation of the specification. Terms that are roughly synonymous with program derivation are: transformational programming, algorithmics, deductive programming. The Bird-Meertens Formalism is an approach to program derivation. (Wikipedia).

Video thumbnail

Ex 1: Finding Terms in a Sequence Given the Sequence Formula

This video provides two examples of how to find the terms in a sequence given a(n), the sequence formula. One example is arithmetic, and one example is geometric. Site: http://mathispower4u.com Blog: http://mathispower4u.wordpress.com

From playlist Sequences

Video thumbnail

What is the definition of a geometric sequence

👉 Learn about sequences. A sequence is a list of numbers/values exhibiting a defined pattern. A number/value in a sequence is called a term of the sequence. There are many types of sequence, among which are: arithmetic and geometric sequence. An arithmetic sequence is a sequence in which

From playlist Sequences

Video thumbnail

How to simplify an expression by following order of operations and distributive property

👉 Learn how to simplify mathematics expressions. A mathematis expression is a finite combination of numbers and symbols formed following a set of operations or rules. To simplify a mathematics expression means to reduce the expression into simpler form. For expressions having parenthesis

From playlist Simplify Expressions Using Order of Operations

Video thumbnail

How to simplify an expression by applying distributive property and combining like terms

👉 Learn how to simplify mathematics expressions. A mathematis expression is a finite combination of numbers and symbols formed following a set of operations or rules. To simplify a mathematics expression means to reduce the expression into simpler form. For expressions having parenthesis

From playlist Simplify Expressions Using Order of Operations

Video thumbnail

Summary Simplifying rational expressions

Learn how to simplify rational expressions. A rational expression is an expression in the form of a fraction where the numerator and/or the denominator are/is an algebraic expression. To simplify a rational expression, we factor completely the numerator and the denominator of the rational

From playlist Simplify Rational Expressions

Video thumbnail

How to simplify an expression using PEMDAS with Brackets

👉 Learn how to simplify mathematics expressions. A mathematis expression is a finite combination of numbers and symbols formed following a set of operations or rules. To simplify a mathematics expression means to reduce the expression into simpler form. For expressions having parenthesis

From playlist Simplify Expressions Using Order of Operations

Video thumbnail

Matthijs Vákár: Mathematical foundations of automatic differentiation

HYBRID EVENT Recorded during the meeting "Logic of Probabilistic Programming" the January 31, 2022 by the Centre International de Rencontres Mathématiques (Marseille, France) Filmmaker: Guillaume Hennenfent Find this video and other talks given by worldwide mathematicians on CIRM's Aud

From playlist Virtual Conference

Video thumbnail

Simplifying an expression using the distributive property ex3, -y(3y + 10)

👉 Learn how to simplify mathematics expressions. A mathematis expression is a finite combination of numbers and symbols formed following a set of operations or rules. To simplify a mathematics expression means to reduce the expression into simpler form. For expressions having parenthesis

From playlist Simplify Expressions Using Order of Operations

Video thumbnail

Learning to simplify a rational expression

Learn how to simplify rational expressions. A rational expression is an expression in the form of a fraction where the numerator and/or the denominator are/is an algebraic expression. To simplify a rational expression, we factor completely the numerator and the denominator of the rational

From playlist Simplify Rational Expressions

Video thumbnail

Simplifying an expression by adding and subtracting

👉 Learn how to simplify mathematics expressions. A mathematis expression is a finite combination of numbers and symbols formed following a set of operations or rules. To simplify a mathematics expression means to reduce the expression into simpler form. For expressions having parenthesis

From playlist Simplify Expressions Using Order of Operations

Video thumbnail

Lecture 3B: Symbolic Differentiation; Quotation

MIT 6.001 Structure and Interpretation of Computer Programs, Spring 2005 Instructor: Harold Abelson, Gerald Jay Sussman, Julie Sussman View the complete course: https://ocw.mit.edu/6-001S05 YouTube Playlist: https://www.youtube.com/playlist?list=PLE18841CABEA24090 Symbolic Differentiation

From playlist MIT 6.001 Structure and Interpretation, 1986

Video thumbnail

Live CEOing Ep 399: Compile Layer Design Review for Wolfram Language

In this episode of Live CEOing, Stephen Wolfram reviews the design of upcoming compiler functionality for the Wolfram Language. If you'd like to contribute to the discussion in future episodes, you can participate through this YouTube channel or through the official Twitch channel of Steph

From playlist Behind the Scenes in Real-Life Software Design

Video thumbnail

C++ Inheritance Tutorial | Introduction To Inheritance In C++ Programming With Example | Simplilearn

🔥Post Graduate Program In Full Stack Web Development: https://www.simplilearn.com/pgp-full-stack-web-development-certification-training-course?utm_campaign=CPPInheritance-qYY9eR7Ldek&utm_medium=DescriptionFF&utm_source=youtube 🔥Caltech Coding Bootcamp (US Only): https://www.simplilearn.com

From playlist C++ Tutorial Videos

Video thumbnail

C++ Basics Tutorial | C++ Basics For Beginners | C++ Programming Tutorial For Beginners |Simplilearn

🔥Post Graduate Program In Full Stack Web Development: https://www.simplilearn.com/pgp-full-stack-web-development-certification-training-course?utm_campaign=CPPBasics-QesotfZQmT8&utm_medium=DescriptionFF&utm_source=youtube 🔥Caltech Coding Bootcamp (US Only): https://www.simplilearn.com/codi

From playlist C++ Tutorial Videos

Video thumbnail

C++ Polymorphism Explained | C++ Polymorphism Tutorial | C++ Programming Basics | Simplilearn

🔥Post Graduate Program In Full Stack Web Development: https://www.simplilearn.com/pgp-full-stack-web-development-certification-training-course?utm_campaign=CPPCPolymorphism-pcMSlWLKzOE&utm_medium=DescriptionFF&utm_source=youtube 🔥Caltech Coding Bootcamp (US Only): https://www.simplilearn.c

From playlist C++ Tutorial Videos

Video thumbnail

Lecture 3B | MIT 6.001 Structure and Interpretation, 1986

Symbolic Differentiation; Quotation Despite the copyright notice on the screen, this course is now offered under a Creative Commons license: BY-NC-SA. Details at http://ocw.mit.edu/terms Subtitles for this course are provided through the generous assistance of Henry Baker, Hoofar Pou

From playlist MIT 6.001 Structure and Interpretation, 1986

Video thumbnail

Edouard Pauwels: What does back propagation compute?

We are interested in nonsmooth analysis of backpropagation as implemented in modern machine learning librairies, such as Tensorflow or Pytorch. First I will illustrate how blind application of differential calculus to nonsmooth objects can be problematic, requiring a proper mathematical mo

From playlist Mathematics in Science & Technology

Video thumbnail

Proof synthesis and differential linear logic

Linear logic is a refinement of intuitionistic logic which, viewed as a functional programming language in the sense of the Curry-Howard correspondence, has an explicit mechanism for copying and discarding information. It turns out that, due to these mechanisms, linear logic is naturally r

From playlist Talks

Video thumbnail

Simplifying an expression with four operations- Online Math Tutor-Simplify

👉 Learn how to simplify mathematics expressions. A mathematis expression is a finite combination of numbers and symbols formed following a set of operations or rules. To simplify a mathematics expression means to reduce the expression into simpler form. For expressions having parenthesis

From playlist Simplify Expressions Using Order of Operations

Video thumbnail

Lecture 4A: Pattern Matching and Rule-based Substitution

MIT 6.001 Structure and Interpretation of Computer Programs, Spring 2005 Instructor: Harold Abelson, Gerald Jay Sussman, Julie Sussman View the complete course: https://ocw.mit.edu/6-001S05 YouTube Playlist: https://www.youtube.com/playlist?list=PLE18841CABEA24090 Pattern Matching and Rul

From playlist MIT 6.001 Structure and Interpretation, 1986

Related pages

Edsger W. Dijkstra | Hoare logic | Formal verification | Proof-carrying code | Correctness (computer science) | Mathematical proof