diff --git a/README.md b/README.md
index 939cd4468fcffd2386934ab8a9a1cfb71b6dcd65..0b97c4cd5310ada3e59352a37c1dca364028f880 100644
--- a/README.md
+++ b/README.md
@@ -132,16 +132,21 @@ hold. It can be one of the following :
     `meta lenient` to its contract, in case the invariant needs to be locally
     broken.
 - `\writing` : `P` is to be valid each time the memory is written to in the body
-  of the target function. In this context, `P` can use the `\written`
-  meta-variable, which is the address of the location (or set of locations) being modified.
-  + By default, if `f` calls `g` and `g` has no definition, every state 
+  of the target function. In this context, `P` can use the following metavariables:
+  - `\written`, which is the address of the location (or set of locations) being modified;
+  - `\lhost_written`, which is the address of the base object (i.e with fields and array
+    indices removed) of the location(s) being modified.
+  
+  Prototypes without a definition lead to a special treatment:
+  + By default, if `f` calls `g` and `g` has no definition, every state
     modification that could happen in `g` (according to its `assigns`
     specification) is considered by being **equivalent to assignements in the
     body of `f`** and thus will be checked.
   + In that case, if `g` does not specify a memory footprint, it is **assumed** that it
     respects all related meta-properties.
   + This can be disabled with option `-meta-no-check-ext`
-- `\reading` : symmetrical to `\writing`. `P` can use the `\read` variable.
+- `\reading` : symmetrical to `\writing`. `P` can use the `\read` and `\lhost_read`
+    meta-variables.
   + Undefined callees are checked using their `\from` specification if existing.
 - `\calling` : the property must hold at each function call and can refer to the
   `\called` variable.