If-else
You can use the if and else keywords to make a conditional expression. Its general form is:
if condition {
    expression1
} else {
    expression2
}
The condition must be a boolean expression, and the expressions in the two branches have to be the same type.
For example:
let max_a_b: Nat = if a < b {
    b
} else {
    a
}
As an expression, the else branch is required. Otherwise, what would the expression be if the condition was false?
If Statements
You can also use if as a statement with multiple steps inside its proof.
if condition {
    first_statement
    another_statement
    final_statement
}
Inside the block, the condition is assumed to be true. Outside the block, condition implies final_statement is usable.
In statement form, the else branch isn't required.
Proof By Contradiction
One common pattern is to do a proof by contradiction, by using an if statement whose final statement is simply false.
if condition {
    first_statement
    another_statement
    false
}
The final false indicates that we have proven a contradiction. In the environment outside the block, this proves not condition.
For example:
theorem foo(a: Nat, b: Nat) {
  2 * a != 2 * b + 3
} by {
  if 2 * a = 2 * b + 3 {
    2 * a  = 2 * (b + 1) + 1
    2 * (a - (b + 1)) = 1
    false
  }
}