Precondition, statement and postcondition

Prompt: In the litterature of software, how are the three sections in a function often named? Ie.           
argument validation, do stuff, result check

The three-part structure is most commonly known as Design by Contract (DbC), introduced by Bertrand
Meyer in Object-Oriented Software Construction (1988). The three parts are:  
  1. Preconditions - validate inputs/state before doing work ("argument validation")
  2. Body / Main logic - the actual computation ("do stuff")
  3. Postconditions - verify the result/state after the work is done ("result check")

A related concept is the class invariant - conditions that must hold before and after every public
method call, which completes the contract.
Other names and framings you'll encounter in the literature:
  - Guard / Transform / Ensure - a more informal phrasing
  - Require / Do / Ensure - the keywords Eiffel (Meyer's language) actually used: require for
    preconditions, ensure for postconditions
  - Arrange / Act / Assert - the testing equivalent (from the unit testing world), same shape applied
     to test functions rather than production code
  - Given / When / Then - BDD (Behavior-Driven Development) terminology, same structure
  - Hoare Triple - the formal logic foundation: {P} S {Q} where P is the precondition, S is the
    statement, Q is the postcondition. From Tony Hoare's 1969 paper An Axiomatic Basis for Computer 
    Programming

So the lineage goes: Hoare formalized it mathematically, Meyer made it practical with Design by
Contract, and the testing community adopted the same pattern as Arrange/Act/Assert.