In the most basic situation asreml-R uses the same notation used by lm to define covariates, factors, crossed factors, nesting, etc. For example:
y ~ 1 # Only a mean
y ~ x # A covariate (where x is a numeric variable)
y ~ f # A factor (where F is defined as factor(F))
y ~ f1/f2 # A factor f2 nested in f1
y ~ x + f # Analysis of covariance
y ~ f1 + f2 + f1:f2 # Two factors with interaction
y ~ f1*f2 # Expands to f1 + f2 + f1:f2
y ~ x # A covariate (where x is a numeric variable)
y ~ f # A factor (where F is defined as factor(F))
y ~ f1/f2 # A factor f2 nested in f1
y ~ x + f # Analysis of covariance
y ~ f1 + f2 + f1:f2 # Two factors with interaction
y ~ f1*f2 # Expands to f1 + f2 + f1:f2
Differences start appearing when using multivariate analyses and variance structures that difer from the identity.